mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-05-05 23:47:44 +02:00
KeyVerificationCoordinator: Handle QR code confirmation screen.
This commit is contained in:
@@ -102,7 +102,7 @@ final class KeyVerificationCoordinator: KeyVerificationCoordinatorType {
|
||||
|
||||
func start() {
|
||||
let rootCoordinator: Coordinator & Presentable
|
||||
|
||||
|
||||
switch self.verificationFlow {
|
||||
case .verifyUser(let roomMember):
|
||||
rootCoordinator = self.createUserVerificationStartCoordinator(with: roomMember)
|
||||
@@ -119,11 +119,11 @@ final class KeyVerificationCoordinator: KeyVerificationCoordinatorType {
|
||||
case .completeSecurity:
|
||||
rootCoordinator = self.createCompleteSecurityCoordinator()
|
||||
}
|
||||
|
||||
|
||||
rootCoordinator.start()
|
||||
|
||||
|
||||
self.add(childCoordinator: rootCoordinator)
|
||||
|
||||
|
||||
if self.navigationRouter.modules.isEmpty == false {
|
||||
self.navigationRouter.push(rootCoordinator, animated: true, popCompletion: { [weak self] in
|
||||
self?.remove(childCoordinator: rootCoordinator)
|
||||
@@ -232,6 +232,17 @@ final class KeyVerificationCoordinator: KeyVerificationCoordinatorType {
|
||||
self?.remove(childCoordinator: coordinator)
|
||||
}
|
||||
}
|
||||
|
||||
private func showScanConfirmation(for transaction: MXQRCodeTransaction, codeScanning: KeyVerificationScanning, animated: Bool) {
|
||||
let coordinator = KeyVerificationScanConfirmationCoordinator(session: self.session, transaction: transaction, codeScanning: codeScanning, verificationKind: self.verificationKind)
|
||||
coordinator.delegate = self
|
||||
coordinator.start()
|
||||
|
||||
self.add(childCoordinator: coordinator)
|
||||
self.navigationRouter.push(coordinator, animated: animated) { [weak self] in
|
||||
self?.remove(childCoordinator: coordinator)
|
||||
}
|
||||
}
|
||||
|
||||
private func showVerified(animated: Bool) {
|
||||
let viewController = KeyVerificationVerifiedViewController.instantiate(with: self.verificationKind)
|
||||
@@ -350,10 +361,14 @@ extension KeyVerificationCoordinator: KeyVerificationVerifyByScanningCoordinator
|
||||
self.showVerified(animated: true)
|
||||
}
|
||||
|
||||
func keyVerificationVerifyByScanningCoordinatorDidCompleteQRCodeVerification(_ coordinator: KeyVerificationVerifyByScanningCoordinatorType) {
|
||||
self.showVerified(animated: true)
|
||||
func keyVerificationVerifyByScanningCoordinator(_ coordinator: KeyVerificationVerifyByScanningCoordinatorType, didScanOtherQRCodeData qrCodeData: MXQRCodeData, withTransaction transaction: MXQRCodeTransaction) {
|
||||
self.showScanConfirmation(for: transaction, codeScanning: .scannedOtherQRCode(qrCodeData), animated: true)
|
||||
}
|
||||
|
||||
func keyVerificationVerifyByScanningCoordinator(_ coordinator: KeyVerificationVerifyByScanningCoordinatorType, qrCodeDidScannedByOtherWithTransaction transaction: MXQRCodeTransaction) {
|
||||
self.showScanConfirmation(for: transaction, codeScanning: .myQRCodeScanned, animated: true)
|
||||
}
|
||||
|
||||
func keyVerificationVerifyByScanningCoordinator(_ coordinator: KeyVerificationVerifyByScanningCoordinatorType, didCompleteWithSASTransaction transaction: MXSASTransaction) {
|
||||
self.showVerifyBySAS(transaction: transaction, animated: true)
|
||||
}
|
||||
@@ -381,3 +396,15 @@ extension KeyVerificationCoordinator: KeyVerificationSelfVerifyWaitCoordinatorDe
|
||||
self.didCancel()
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - KeyVerificationScanConfirmationCoordinatorDelegate
|
||||
extension KeyVerificationCoordinator: KeyVerificationScanConfirmationCoordinatorDelegate {
|
||||
|
||||
func keyVerificationScanConfirmationCoordinatorDidComplete(_ coordinator: KeyVerificationScanConfirmationCoordinatorType) {
|
||||
self.showVerified(animated: true)
|
||||
}
|
||||
|
||||
func keyVerificationScanConfirmationCoordinatorDidCancel(_ coordinator: KeyVerificationScanConfirmationCoordinatorType) {
|
||||
self.didCancel()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user