diff --git a/Riot/Modules/Room/MXKRoomViewController.h b/Riot/Modules/Room/MXKRoomViewController.h index 45ad325b5..6cdaab93a 100644 --- a/Riot/Modules/Room/MXKRoomViewController.h +++ b/Riot/Modules/Room/MXKRoomViewController.h @@ -444,4 +444,10 @@ typedef NS_ENUM(NSUInteger, MXKRoomViewControllerJoinRoomResult) { */ - (void)handleTypingNotification:(BOOL)typing; + +/** + Share encryption keys in this room. + */ +- (void)shareEncryptionKeys; + @end diff --git a/Riot/Modules/Room/RoomViewController.m b/Riot/Modules/Room/RoomViewController.m index ce081145f..966a76e45 100644 --- a/Riot/Modules/Room/RoomViewController.m +++ b/Riot/Modules/Room/RoomViewController.m @@ -4564,6 +4564,15 @@ const NSTimeInterval kResizeComposerAnimationDuration = .05; [self.userSuggestionCoordinator processTextMessage:toolbarView.textMessage]; } +- (void)roomInputToolbarViewDidOpenActionMenu:(MXKRoomInputToolbarView*)toolbarView +{ + // Consider opening the action menu as beginning to type and share encryption keys if requested. + if ([MXKAppSettings standardAppSettings].outboundGroupSessionKeyPreSharingStrategy == MXKKeyPreSharingWhenTyping) + { + [self shareEncryptionKeys]; + } +} + #pragma mark - MXKRoomMemberDetailsViewControllerDelegate - (void)roomMemberDetailsViewController:(MXKRoomMemberDetailsViewController *)roomMemberDetailsViewController startChatWithMemberId:(NSString *)matrixId completion:(void (^)(void))completion diff --git a/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.h b/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.h index 282687128..e3feed12e 100644 --- a/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.h +++ b/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.h @@ -47,6 +47,13 @@ typedef enum : NSUInteger */ - (void)roomInputToolbarViewDidChangeTextMessage:(MXKRoomInputToolbarView*)toolbarView; +/** + Inform the delegate that the action menu was opened. + + @param toolbarView the room input toolbar view + */ +- (void)roomInputToolbarViewDidOpenActionMenu:(MXKRoomInputToolbarView*)toolbarView; + @end /** diff --git a/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.m b/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.m index cffe8fe1b..2ce98c82c 100644 --- a/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.m +++ b/Riot/Modules/Room/Views/InputToolbar/RoomInputToolbarView.m @@ -429,6 +429,7 @@ static const NSTimeInterval kActionMenuComposerHeightAnimationDuration = .3; if (_actionMenuOpened) { self.actionsBar.hidden = NO; [self.actionsBar animateWithShowIn:_actionMenuOpened completion:nil]; + [self.delegate roomInputToolbarViewDidOpenActionMenu:self]; } else { diff --git a/changelog.d/5564.bugfix b/changelog.d/5564.bugfix new file mode 100644 index 000000000..b9c450d48 --- /dev/null +++ b/changelog.d/5564.bugfix @@ -0,0 +1 @@ +Fix for images sometimes being sent unencrypted inside an encrypted room. \ No newline at end of file