diff --git a/Riot/Modules/KeyVerification/User/UserVerificationCoordinator.swift b/Riot/Modules/KeyVerification/User/UserVerificationCoordinator.swift index 51d7a3bf8..38d2414d6 100644 --- a/Riot/Modules/KeyVerification/User/UserVerificationCoordinator.swift +++ b/Riot/Modules/KeyVerification/User/UserVerificationCoordinator.swift @@ -140,6 +140,16 @@ final class UserVerificationCoordinator: NSObject, UserVerificationCoordinatorTy self.presenter.toPresentable().present(alert, animated: true, completion: nil) } + + private func presentManualDeviceVerification(for deviceId: String, of userId: String) { + let coordinator = KeyVerificationManuallyVerifyCoordinator(session: self.session, deviceId: deviceId, userId: userId) + coordinator.delegate = self + coordinator.start() + + self.navigationRouter.push(coordinator, animated: true) { + self.remove(childCoordinator: coordinator) + } + } } // MARK: - UserVerificationSessionsStatusCoordinatorDelegate @@ -164,7 +174,7 @@ extension UserVerificationCoordinator: UserVerificationSessionStatusCoordinatorD } func userVerificationSessionStatusCoordinator(_ coordinator: UserVerificationSessionStatusCoordinatorType, wantsToManuallyVerifyDeviceWithId deviceId: String, for userId: String) { - // TODO: Steve + self.presentManualDeviceVerification(for: deviceId, of: userId) } func userVerificationSessionStatusCoordinatorDidClose(_ coordinator: UserVerificationSessionStatusCoordinatorType) { @@ -192,3 +202,19 @@ extension UserVerificationCoordinator: KeyVerificationCoordinatorDelegate { } } } + +// MARK: - KeyVerificationManuallyVerifyCoordinatorDelegate +extension UserVerificationCoordinator: KeyVerificationManuallyVerifyCoordinatorDelegate { + + func keyVerificationManuallyVerifyCoordinator(_ coordinator: KeyVerificationManuallyVerifyCoordinatorType, didVerifiedDeviceWithId deviceId: String, of userId: String) { + self.presenter.toPresentable().dismiss(animated: true) { + self.remove(childCoordinator: coordinator) + } + } + + func keyVerificationManuallyVerifyCoordinatorDidCancel(_ coordinator: KeyVerificationManuallyVerifyCoordinatorType) { + self.presenter.toPresentable().dismiss(animated: true) { + self.remove(childCoordinator: coordinator) + } + } +}