mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-26 11:30:50 +02:00
Merge commit '3d672a05b2a7117ade2e4e87bd2b5762063d7922' into feature/3977_merge_element_1_9_13
# Conflicts: # Config/AppVersion.xcconfig # Podfile.lock # Riot/Modules/Application/LegacyAppDelegate.m # Riot/Modules/Authentication/AuthenticationCoordinator.swift # Riot/Modules/Authentication/Legacy/LegacyAuthenticationCoordinator.swift # Riot/Modules/LaunchLoading/LaunchLoadingView.swift # Riot/Modules/LaunchLoading/LaunchLoadingView.xib # Riot/Modules/MatrixKit/Models/Account/MXKAccount.m # Riot/Modules/MatrixKit/Models/Room/MXKRoomBubbleCellData.m # Riot/Modules/Room/TimelineCells/Styles/Bubble/BubbleRoomTimelineCellProvider.m # Riot/Modules/Room/TimelineCells/Styles/Plain/PlainRoomTimelineCellProvider.m # Riot/Modules/TabBar/MasterTabBarController.m # fastlane/Fastfile
This commit is contained in:
@@ -190,7 +190,6 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
MXTaskProfile *notificationTaskProfile;
|
||||
}
|
||||
|
||||
@property (nonatomic, weak) IBOutlet UIView *overlayContainerView;
|
||||
@property (nonatomic, strong) RemoveJitsiWidgetView *removeJitsiWidgetView;
|
||||
|
||||
|
||||
@@ -479,6 +478,9 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
self.jumpToLastUnreadBanner.backgroundColor = ThemeService.shared.theme.colors.navigation;
|
||||
[self.jumpToLastUnreadBanner vc_removeShadow];
|
||||
self.resetReadMarkerButton.tintColor = ThemeService.shared.theme.colors.quarterlyContent;
|
||||
if (self.maximisedToolbarDimmingView) {
|
||||
self.maximisedToolbarDimmingView.backgroundColor = [UIColor.blackColor colorWithAlphaComponent:0.29];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -490,6 +492,9 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
radius:8
|
||||
opacity:0.1];
|
||||
self.resetReadMarkerButton.tintColor = ThemeService.shared.theme.colors.tertiaryContent;
|
||||
if (self.maximisedToolbarDimmingView) {
|
||||
self.maximisedToolbarDimmingView.backgroundColor = [UIColor.blackColor colorWithAlphaComponent:0.12];
|
||||
}
|
||||
}
|
||||
|
||||
self.scrollToBottomBadgeLabel.badgeColor = ThemeService.shared.theme.tintColor;
|
||||
@@ -608,6 +613,7 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
|
||||
[VoiceMessageMediaServiceProvider.sharedProvider pauseAllServices];
|
||||
[VoiceBroadcastRecorderProvider.shared pauseRecording];
|
||||
[VoiceBroadcastPlaybackProvider.shared pausePlaying];
|
||||
|
||||
if([BWIBuildSettings.shared showMentionsInRoom]) {
|
||||
[Mentions setCountMentionsToZeroWithRoomID:self.roomDataSource.roomId];
|
||||
@@ -615,6 +621,8 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
|
||||
// Stop the loading indicator even if the session is still in progress
|
||||
[self stopLoadingUserIndicator];
|
||||
|
||||
[self setMaximisedToolbarIsHiddenIfNeeded: YES];
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated
|
||||
@@ -690,6 +698,8 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
// Note: We have to wait for viewDidAppear before updating growingTextView (viewWillAppear is too early)
|
||||
self.inputToolbarView.attributedTextMessage = self.roomDataSource.partialAttributedTextMessage;
|
||||
}
|
||||
|
||||
[self setMaximisedToolbarIsHiddenIfNeeded: NO];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated
|
||||
@@ -1224,8 +1234,6 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
if (!self.inputToolbarView || ![self.inputToolbarView isMemberOfClass:roomInputToolbarViewClass])
|
||||
{
|
||||
[super setRoomInputToolbarViewClass:roomInputToolbarViewClass];
|
||||
|
||||
|
||||
if ([self.inputToolbarView.class conformsToProtocol:@protocol(RoomInputToolbarViewProtocol)]) {
|
||||
id<RoomInputToolbarViewProtocol> inputToolbar = (id<RoomInputToolbarViewProtocol>)self.inputToolbarView;
|
||||
[inputToolbar setVoiceMessageToolbarView:self.voiceMessageController.voiceMessageToolbarView];
|
||||
@@ -3267,30 +3275,30 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
{
|
||||
if (bubbleData.isPaginationFirstBubble)
|
||||
{
|
||||
cellIdentifier = RoomTimelineCellIdentifierIncomingVoiceBroadcastWithPaginationTitle;
|
||||
cellIdentifier = RoomTimelineCellIdentifierIncomingVoiceBroadcastPlaybackWithPaginationTitle;
|
||||
}
|
||||
else if (bubbleData.shouldHideSenderInformation)
|
||||
{
|
||||
cellIdentifier = RoomTimelineCellIdentifierIncomingVoiceBroadcastWithoutSenderInfo;
|
||||
cellIdentifier = RoomTimelineCellIdentifierIncomingVoiceBroadcastPlaybackWithoutSenderInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
cellIdentifier = RoomTimelineCellIdentifierIncomingVoiceBroadcast;
|
||||
cellIdentifier = RoomTimelineCellIdentifierIncomingVoiceBroadcastPlayback;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bubbleData.isPaginationFirstBubble)
|
||||
{
|
||||
cellIdentifier = RoomTimelineCellIdentifierOutgoingVoiceBroadcastWithPaginationTitle;
|
||||
cellIdentifier = RoomTimelineCellIdentifierOutgoingVoiceBroadcastPlaybackWithPaginationTitle;
|
||||
}
|
||||
else if (bubbleData.shouldHideSenderInformation)
|
||||
{
|
||||
cellIdentifier = RoomTimelineCellIdentifierOutgoingVoiceBroadcastWithoutSenderInfo;
|
||||
cellIdentifier = RoomTimelineCellIdentifierOutgoingVoiceBroadcastPlaybackWithoutSenderInfo;
|
||||
}
|
||||
else
|
||||
{
|
||||
cellIdentifier = RoomTimelineCellIdentifierOutgoingVoiceBroadcast;
|
||||
cellIdentifier = RoomTimelineCellIdentifierOutgoingVoiceBroadcastPlayback;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5144,7 +5152,9 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
[actionItems addObject:@(ComposerCreateActionCamera)];
|
||||
}
|
||||
|
||||
self.composerCreateActionListBridgePresenter = [[ComposerCreateActionListBridgePresenter alloc] initWithActions:actionItems];
|
||||
self.composerCreateActionListBridgePresenter = [[ComposerCreateActionListBridgePresenter alloc] initWithActions:actionItems
|
||||
wysiwygEnabled:RiotSettings.shared.enableWysiwygComposer
|
||||
textFormattingEnabled:RiotSettings.shared.enableWysiwygTextFormatting];
|
||||
self.composerCreateActionListBridgePresenter.delegate = self;
|
||||
[self.composerCreateActionListBridgePresenter presentFrom:self animated:YES];
|
||||
}
|
||||
@@ -5297,7 +5307,7 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
}
|
||||
}
|
||||
|
||||
if ([cell isKindOfClass:MXKRoomBubbleTableViewCell.class])
|
||||
if ([cell isKindOfClass:MXKRoomBubbleTableViewCell.class] && ![cell isKindOfClass:MXKRoomEmptyBubbleTableViewCell.class])
|
||||
{
|
||||
MXKRoomBubbleTableViewCell *roomBubbleTableViewCell = (MXKRoomBubbleTableViewCell*)cell;
|
||||
if (roomBubbleTableViewCell.readMarkerView)
|
||||
@@ -5957,17 +5967,13 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
{
|
||||
if (self.roomDataSource.room)
|
||||
{
|
||||
// Retrieve the unread messages count
|
||||
NSUInteger unreadCount = self.roomDataSource.room.summary.localUnreadEventCount;
|
||||
// Retrieve the unread messages count on the current thread
|
||||
NSUInteger unreadCount = [self.mainSession.store
|
||||
localUnreadEventCount:self.roomDataSource.room.roomId
|
||||
threadId:self.roomDataSource.threadId ?: kMXEventTimelineMain
|
||||
withTypeIn:self.mainSession.unreadEventTypes];
|
||||
|
||||
if (!self.roomDataSource.threadId)
|
||||
{
|
||||
self.scrollToBottomBadgeLabel.text = unreadCount ? [NSString stringWithFormat:@"%lu", unreadCount] : nil;
|
||||
}
|
||||
else
|
||||
{
|
||||
self.scrollToBottomBadgeLabel.text = nil;
|
||||
}
|
||||
self.scrollToBottomBadgeLabel.text = unreadCount ? [NSString stringWithFormat:@"%lu", unreadCount] : nil;
|
||||
self.scrollToBottomHidden = NO;
|
||||
}
|
||||
else
|
||||
@@ -6565,7 +6571,7 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
if (self.roomDataSource.isLive && !self.roomDataSource.isPeeking && self.roomDataSource.showReadMarker && self.roomDataSource.room.accountData.readMarkerEventId)
|
||||
{
|
||||
UITableViewCell *cell = [self.bubblesTableView visibleCells].firstObject;
|
||||
if ([cell isKindOfClass:MXKRoomBubbleTableViewCell.class])
|
||||
if ([cell isKindOfClass:MXKRoomBubbleTableViewCell.class] && ![cell isKindOfClass:MXKRoomEmptyBubbleTableViewCell.class])
|
||||
{
|
||||
MXKRoomBubbleTableViewCell *roomBubbleTableViewCell = (MXKRoomBubbleTableViewCell*)cell;
|
||||
// Check whether the read marker is inside the first displayed cell.
|
||||
@@ -6803,8 +6809,8 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
|
||||
[currentAlert dismissViewControllerAnimated:NO completion:nil];
|
||||
|
||||
UIAlertController *alert = [UIAlertController alertControllerWithTitle:[VectorL10n keyVerificationSelfVerifyUnverifiedSessionsAlertTitle]
|
||||
message:[VectorL10n keyVerificationSelfVerifyUnverifiedSessionsAlertMessage]
|
||||
UIAlertController *alert = [UIAlertController alertControllerWithTitle:[VectorL10n keyVerificationAlertTitle]
|
||||
message:[VectorL10n keyVerificationAlertBody]
|
||||
preferredStyle:UIAlertControllerStyleAlert];
|
||||
|
||||
[alert addAction:[UIAlertAction actionWithTitle:[VectorL10n keyVerificationSelfVerifyUnverifiedSessionsAlertValidateAction]
|
||||
@@ -7493,31 +7499,27 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
|
||||
MXThreadNotificationsCount *notificationsCount = [service notificationsCountForRoom:self.roomDataSource.roomId];
|
||||
|
||||
if (notificationsCount.numberOfHighlightedThreads > 0)
|
||||
UIImage *buttonIcon = [AssetImages.threadsIcon.image vc_resizedWith:kThreadListBarButtonItemImageSize];
|
||||
[button setImage:buttonIcon forState:UIControlStateNormal];
|
||||
button.contentEdgeInsets = kThreadListBarButtonItemContentInsetsNoDot;
|
||||
|
||||
if (notificationsCount.notificationsNumber > 0)
|
||||
{
|
||||
[button setImage:AssetImages.threadsIconRedDot.image
|
||||
forState:UIControlStateNormal];
|
||||
button.contentEdgeInsets = kThreadListBarButtonItemContentInsetsDot;
|
||||
}
|
||||
else if (notificationsCount.numberOfNotifiedThreads > 0)
|
||||
{
|
||||
if (ThemeService.shared.isCurrentThemeDark)
|
||||
{
|
||||
[button setImage:AssetImages.threadsIconGrayDotDark.image
|
||||
forState:UIControlStateNormal];
|
||||
}
|
||||
else
|
||||
{
|
||||
[button setImage:AssetImages.threadsIconGrayDotLight.image
|
||||
forState:UIControlStateNormal];
|
||||
}
|
||||
button.contentEdgeInsets = kThreadListBarButtonItemContentInsetsDot;
|
||||
}
|
||||
else
|
||||
{
|
||||
[button setImage:[AssetImages.threadsIcon.image vc_resizedWith:kThreadListBarButtonItemImageSize]
|
||||
forState:UIControlStateNormal];
|
||||
button.contentEdgeInsets = kThreadListBarButtonItemContentInsetsNoDot;
|
||||
BadgeLabel *badgeLabel = [[BadgeLabel alloc] init];
|
||||
badgeLabel.text = notificationsCount.notificationsNumber > 99 ? @"99+" : [NSString stringWithFormat:@"%lu", notificationsCount.notificationsNumber];
|
||||
id<Theme> theme = ThemeService.shared.theme;
|
||||
badgeLabel.font = theme.fonts.caption1SB;
|
||||
badgeLabel.textColor = theme.colors.navigation;
|
||||
badgeLabel.badgeColor = notificationsCount.numberOfHighlightedThreads ? theme.colors.alert : theme.colors.secondaryContent;
|
||||
[button addSubview:badgeLabel];
|
||||
|
||||
[badgeLabel layoutIfNeeded];
|
||||
|
||||
badgeLabel.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
[badgeLabel.centerYAnchor constraintEqualToAnchor:button.centerYAnchor
|
||||
constant:badgeLabel.bounds.size.height - buttonIcon.size.height / 2].active = YES;
|
||||
[badgeLabel.centerXAnchor constraintEqualToAnchor:button.centerXAnchor
|
||||
constant:badgeLabel.bounds.size.width + buttonIcon.size.width / 2].active = YES;
|
||||
}
|
||||
|
||||
if (replaceIndex == NSNotFound)
|
||||
@@ -8135,6 +8137,11 @@ static CGSize kThreadListBarButtonItemImageSize;
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)composerCreateActionListBridgePresenterDelegateDidToggleTextFormatting:(ComposerCreateActionListBridgePresenter *)coordinatorBridgePresenter enabled:(BOOL)enabled
|
||||
{
|
||||
[self togglePlainTextMode];
|
||||
}
|
||||
|
||||
- (void)composerCreateActionListBridgePresenterDidDismissInteractively:(ComposerCreateActionListBridgePresenter *)coordinatorBridgePresenter
|
||||
{
|
||||
self.composerCreateActionListBridgePresenter = nil;
|
||||
|
||||
Reference in New Issue
Block a user