diff --git a/Riot/Modules/KeyVerification/User/UserVerificationCoordinator.swift b/Riot/Modules/KeyVerification/User/UserVerificationCoordinator.swift index b56748a40..45e8e378f 100644 --- a/Riot/Modules/KeyVerification/User/UserVerificationCoordinator.swift +++ b/Riot/Modules/KeyVerification/User/UserVerificationCoordinator.swift @@ -209,6 +209,7 @@ extension UserVerificationCoordinator: KeyVerificationManuallyVerifyCoordinatorD self.presenter.toPresentable().dismiss(animated: true) { self.remove(childCoordinator: coordinator) } + delegate?.userVerificationCoordinatorDidComplete(self) } func keyVerificationManuallyVerifyCoordinatorDidCancel(_ coordinator: KeyVerificationManuallyVerifyCoordinatorType) { diff --git a/Riot/Modules/KeyVerification/User/UserVerificationCoordinatorBridgePresenter.swift b/Riot/Modules/KeyVerification/User/UserVerificationCoordinatorBridgePresenter.swift index af19e72f3..ca718aa1e 100644 --- a/Riot/Modules/KeyVerification/User/UserVerificationCoordinatorBridgePresenter.swift +++ b/Riot/Modules/KeyVerification/User/UserVerificationCoordinatorBridgePresenter.swift @@ -77,8 +77,14 @@ final class UserVerificationCoordinatorBridgePresenter: NSObject { } else { userVerificationCoordinator = UserVerificationCoordinator(presenter: self.presenter, session: self.session, userId: self.userId, userDisplayName: self.userDisplayName) } - + userVerificationCoordinator.delegate = self userVerificationCoordinator.start() self.coordinator = userVerificationCoordinator } } + +extension UserVerificationCoordinatorBridgePresenter: UserVerificationCoordinatorDelegate { + func userVerificationCoordinatorDidComplete(_ coordinator: UserVerificationCoordinatorType) { + delegate?.userVerificationCoordinatorBridgePresenterDelegateDidComplete(self) + } +} diff --git a/Riot/Modules/Room/Members/Detail/RoomMemberDetailsViewController.m b/Riot/Modules/Room/Members/Detail/RoomMemberDetailsViewController.m index 50f0871d5..7e1ba5129 100644 --- a/Riot/Modules/Room/Members/Detail/RoomMemberDetailsViewController.m +++ b/Riot/Modules/Room/Members/Detail/RoomMemberDetailsViewController.m @@ -32,7 +32,7 @@ #define TABLEVIEW_ROW_CELL_HEIGHT 46 #define TABLEVIEW_SECTION_HEADER_HEIGHT 28 -@interface RoomMemberDetailsViewController () +@interface RoomMemberDetailsViewController () { RoomMemberTitleView* memberTitleView; @@ -449,6 +449,7 @@ session:self.mxRoom.mxSession userId:self.mxRoomMember.userId userDisplayName:self.mxRoomMember.displayname]; + userVerificationCoordinatorBridgePresenter.delegate = self; [userVerificationCoordinatorBridgePresenter start]; self.userVerificationCoordinatorBridgePresenter = userVerificationCoordinatorBridgePresenter; } @@ -1345,4 +1346,11 @@ keyVerificationCoordinatorBridgePresenter = nil; } +#pragma mark - UserVerificationCoordinatorBridgePresenterDelegate + +- (void)userVerificationCoordinatorBridgePresenterDelegateDidComplete:(UserVerificationCoordinatorBridgePresenter *)coordinatorBridgePresenter +{ + [self refreshUserEncryptionTrustLevel]; +} + @end diff --git a/Riot/Modules/Settings/Security/ManageSession/ManageSessionViewController.m b/Riot/Modules/Settings/Security/ManageSession/ManageSessionViewController.m index 991f4544a..bab229a54 100644 --- a/Riot/Modules/Settings/Security/ManageSession/ManageSessionViewController.m +++ b/Riot/Modules/Settings/Security/ManageSession/ManageSessionViewController.m @@ -45,7 +45,7 @@ enum { }; -@interface ManageSessionViewController () +@interface ManageSessionViewController () { // The device to display MXDevice *device; @@ -649,6 +649,7 @@ enum { userId:self.mainSession.myUser.userId userDisplayName:nil deviceId:device.deviceId]; + userVerificationCoordinatorBridgePresenter.delegate = self; [userVerificationCoordinatorBridgePresenter start]; self.userVerificationCoordinatorBridgePresenter = userVerificationCoordinatorBridgePresenter; } @@ -701,4 +702,11 @@ enum { self.reauthenticationCoordinatorBridgePresenter = reauthenticationPresenter; } +#pragma mark - UserVerificationCoordinatorBridgePresenterDelegate + +- (void)userVerificationCoordinatorBridgePresenterDelegateDidComplete:(UserVerificationCoordinatorBridgePresenter *)coordinatorBridgePresenter +{ + [self reloadDeviceWithCompletion:^{}]; +} + @end diff --git a/changelog.d/6781.change b/changelog.d/6781.change new file mode 100644 index 000000000..7ff78b730 --- /dev/null +++ b/changelog.d/6781.change @@ -0,0 +1 @@ +CryptoV2: Manual device verification