diff --git a/Riot/Modules/Room/RoomViewController.m b/Riot/Modules/Room/RoomViewController.m index a67358be6..c44e0d95b 100644 --- a/Riot/Modules/Room/RoomViewController.m +++ b/Riot/Modules/Room/RoomViewController.m @@ -8402,44 +8402,48 @@ static CGSize kThreadListBarButtonItemImageSize; // Show sheet only when opening room if (!self.wasFederationDecisionSheetShownBefore) { - // Do not show sheet if room DM - if (!self.roomDataSource.room.isDirect) + // #5781 Do not show sheet in case of preview + if (!self.isRoomPreview) { - // Do not show sheet if room is personal notes room - if (!self.roomDataSource.room.isPersonalNotesRoom) + // Do not show sheet if room DM + if (!self.roomDataSource.room.isDirect) { - // Do not show sheet if isFederated room flag is false (default == true) - [self.roomDataSource.room getFederatedFlagWithCompletion:^(BOOL isFederated) { - if (isFederated) - { - // Do not show sheet if users power level is lower than admin - MXRoomPowerLevels *powerLevels = self.roomDataSource.roomState.powerLevels; - if ([powerLevels powerLevelOfUserWithUserID:self.mainSession.myUser.userId] >= RoomPowerLevelAdmin) + // Do not show sheet if room is personal notes room + if (!self.roomDataSource.room.isPersonalNotesRoom) + { + // Do not show sheet if isFederated room flag is false (default == true) + [self.roomDataSource.room getFederatedFlagWithCompletion:^(BOOL isFederated) { + if (isFederated) { - // Show sheet if no serverACL have been configured - [self.roomDataSource.room getCurrentRoomServerACLSettingsWithCompletion:^(NSString *serverACL) - { - if (serverACL == nil) { - self.wasFederationDecisionSheetShownBefore = true; - RoomFederationDecisionSheet *federationDecisionView = [[RoomFederationDecisionSheet alloc] init]; - UIImage *roomAvatarImage; - MXKImageView *roomAvatarImageView = ((RoomTitleView*)self.titleView).pictureView; - if (roomAvatarImageView && roomAvatarImageView.image) - { - roomAvatarImage = roomAvatarImageView.image; + // Do not show sheet if users power level is lower than admin + MXRoomPowerLevels *powerLevels = self.roomDataSource.roomState.powerLevels; + if ([powerLevels powerLevelOfUserWithUserID:self.mainSession.myUser.userId] >= RoomPowerLevelAdmin) + { + // Show sheet if no serverACL have been configured + [self.roomDataSource.room getCurrentRoomServerACLSettingsWithCompletion:^(NSString *serverACL) + { + if (serverACL == nil) { + self.wasFederationDecisionSheetShownBefore = true; + RoomFederationDecisionSheet *federationDecisionView = [[RoomFederationDecisionSheet alloc] init]; + UIImage *roomAvatarImage; + MXKImageView *roomAvatarImageView = ((RoomTitleView*)self.titleView).pictureView; + if (roomAvatarImageView && roomAvatarImageView.image) + { + roomAvatarImage = roomAvatarImageView.image; + } + else + { + roomAvatarImage = [AvatarGenerator generateAvatarForMatrixItem:self.roomDataSource.roomId withDisplayName:self.roomDataSource.room.summary.displayName]; + } + UIViewController *sheetViewController = [federationDecisionView makeViewControllerWithRoom:self.roomDataSource.room roomAvatarImage: roomAvatarImage]; + sheetViewController.modalPresentationStyle = UIModalPresentationFormSheet; + [self presentViewController:sheetViewController animated:YES completion:nil]; } - else - { - roomAvatarImage = [AvatarGenerator generateAvatarForMatrixItem:self.roomDataSource.roomId withDisplayName:self.roomDataSource.room.summary.displayName]; - } - UIViewController *sheetViewController = [federationDecisionView makeViewControllerWithRoom:self.roomDataSource.room roomAvatarImage: roomAvatarImage]; - sheetViewController.modalPresentationStyle = UIModalPresentationFormSheet; - [self presentViewController:sheetViewController animated:YES completion:nil]; - } - }]; + }]; + } } - } - }]; + }]; + } } } }