mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-26 03:20:50 +02:00
Device verification: Handle QR code verification.
This commit is contained in:
@@ -183,7 +183,7 @@ final class DeviceVerificationCoordinator: DeviceVerificationCoordinatorType {
|
||||
}
|
||||
}
|
||||
|
||||
private func showVerify(transaction: MXSASTransaction, animated: Bool) {
|
||||
private func showVerifyBySAS(transaction: MXSASTransaction, animated: Bool) {
|
||||
let coordinator = DeviceVerificationVerifyCoordinator(session: self.session, transaction: transaction, verificationKind: self.verificationKind)
|
||||
coordinator.delegate = self
|
||||
coordinator.start()
|
||||
@@ -193,6 +193,17 @@ final class DeviceVerificationCoordinator: DeviceVerificationCoordinatorType {
|
||||
self?.remove(childCoordinator: coordinator)
|
||||
}
|
||||
}
|
||||
|
||||
private func showVerifyByScanning(keyVerificationRequest: MXKeyVerificationRequest, animated: Bool) {
|
||||
let coordinator = KeyVerificationVerifyByScanningCoordinator(session: self.session, keyVerificationRequest: keyVerificationRequest)
|
||||
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 = DeviceVerificationVerifiedViewController.instantiate(with: self.verificationKind)
|
||||
@@ -202,6 +213,11 @@ final class DeviceVerificationCoordinator: DeviceVerificationCoordinatorType {
|
||||
}
|
||||
|
||||
extension DeviceVerificationCoordinator: DeviceVerificationDataLoadingCoordinatorDelegate {
|
||||
|
||||
func deviceVerificationDataLoadingCoordinator(_ coordinator: DeviceVerificationDataLoadingCoordinatorType, didAcceptKeyVerificationRequest keyVerificationRequest: MXKeyVerificationRequest) {
|
||||
self.showVerifyByScanning(keyVerificationRequest: keyVerificationRequest, animated: true)
|
||||
}
|
||||
|
||||
func deviceVerificationDataLoadingCoordinator(_ coordinator: DeviceVerificationDataLoadingCoordinatorType, didLoadUser user: MXUser, device: MXDeviceInfo) {
|
||||
|
||||
if let incomingTransaction = self.incomingTransaction {
|
||||
@@ -214,7 +230,7 @@ extension DeviceVerificationCoordinator: DeviceVerificationDataLoadingCoordinato
|
||||
func deviceVerificationDataLoadingCoordinator(_ coordinator: DeviceVerificationDataLoadingCoordinatorType, didAcceptKeyVerificationRequestWithTransaction transaction: MXKeyVerificationTransaction) {
|
||||
|
||||
if let sasTransaction = transaction as? MXSASTransaction {
|
||||
self.showVerify(transaction: sasTransaction, animated: true)
|
||||
self.showVerifyBySAS(transaction: sasTransaction, animated: true)
|
||||
} else {
|
||||
NSLog("[DeviceVerificationCoordinator] Transaction \(transaction) is not supported")
|
||||
self.delegate?.deviceVerificationCoordinatorDidComplete(self, otherUserId: self.otherUserId, otherDeviceId: self.otherDeviceId)
|
||||
@@ -228,7 +244,7 @@ extension DeviceVerificationCoordinator: DeviceVerificationDataLoadingCoordinato
|
||||
|
||||
extension DeviceVerificationCoordinator: DeviceVerificationStartCoordinatorDelegate {
|
||||
func deviceVerificationStartCoordinator(_ coordinator: DeviceVerificationStartCoordinatorType, didCompleteWithOutgoingTransaction transaction: MXSASTransaction) {
|
||||
self.showVerify(transaction: transaction, animated: true)
|
||||
self.showVerifyBySAS(transaction: transaction, animated: true)
|
||||
}
|
||||
|
||||
func deviceVerificationStartCoordinator(_ coordinator: DeviceVerificationStartCoordinatorType, didTransactionCancelled transaction: MXSASTransaction) {
|
||||
@@ -242,7 +258,7 @@ extension DeviceVerificationCoordinator: DeviceVerificationStartCoordinatorDeleg
|
||||
|
||||
extension DeviceVerificationCoordinator: DeviceVerificationIncomingCoordinatorDelegate {
|
||||
func deviceVerificationIncomingCoordinator(_ coordinator: DeviceVerificationIncomingCoordinatorType, didAcceptTransaction transaction: MXSASTransaction) {
|
||||
self.showVerify(transaction: transaction, animated: true)
|
||||
self.showVerifyBySAS(transaction: transaction, animated: true)
|
||||
}
|
||||
|
||||
func deviceVerificationIncomingCoordinatorDidCancel(_ coordinator: DeviceVerificationIncomingCoordinatorType) {
|
||||
@@ -271,8 +287,13 @@ extension DeviceVerificationCoordinator: DeviceVerificationVerifiedViewControlle
|
||||
}
|
||||
|
||||
extension DeviceVerificationCoordinator: UserVerificationStartCoordinatorDelegate {
|
||||
|
||||
func userVerificationStartCoordinator(_ coordinator: UserVerificationStartCoordinatorType, otherDidAcceptRequest request: MXKeyVerificationRequest) {
|
||||
self.showVerifyByScanning(keyVerificationRequest: request, animated: true)
|
||||
}
|
||||
|
||||
func userVerificationStartCoordinator(_ coordinator: UserVerificationStartCoordinatorType, didCompleteWithOutgoingTransaction transaction: MXSASTransaction) {
|
||||
self.showVerify(transaction: transaction, animated: true)
|
||||
self.showVerifyBySAS(transaction: transaction, animated: true)
|
||||
}
|
||||
|
||||
func userVerificationStartCoordinator(_ coordinator: UserVerificationStartCoordinatorType, didTransactionCancelled transaction: MXSASTransaction) {
|
||||
@@ -283,3 +304,22 @@ extension DeviceVerificationCoordinator: UserVerificationStartCoordinatorDelegat
|
||||
self.delegate?.deviceVerificationCoordinatorDidComplete(self, otherUserId: self.otherUserId, otherDeviceId: self.otherDeviceId)
|
||||
}
|
||||
}
|
||||
|
||||
extension DeviceVerificationCoordinator: KeyVerificationVerifyByScanningCoordinatorDelegate {
|
||||
|
||||
func keyVerificationVerifyByScanningCoordinatorDidCancel(_ coordinator: KeyVerificationVerifyByScanningCoordinatorType) {
|
||||
self.delegate?.deviceVerificationCoordinatorDidComplete(self, otherUserId: self.otherUserId, otherDeviceId: self.otherDeviceId)
|
||||
}
|
||||
|
||||
func keyVerificationVerifyByScanningCoordinatorCannotScan(_ coordinator: KeyVerificationVerifyByScanningCoordinatorType) {
|
||||
self.showVerified(animated: true)
|
||||
}
|
||||
|
||||
func keyVerificationVerifyByScanningCoordinatorDidCompleteQRCodeVerification(_ coordinator: KeyVerificationVerifyByScanningCoordinatorType) {
|
||||
self.showVerified(animated: true)
|
||||
}
|
||||
|
||||
func keyVerificationVerifyByScanningCoordinator(_ coordinator: KeyVerificationVerifyByScanningCoordinatorType, didCompleteWithSASTransaction transaction: MXSASTransaction) {
|
||||
self.showVerifyBySAS(transaction: transaction, animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user