Device verification: Improve navigation flow and view states handling.

This commit is contained in:
SBiOSoftWhare
2019-10-23 17:09:58 +02:00
parent 3e4967740b
commit 4d57827363
8 changed files with 54 additions and 17 deletions
@@ -81,8 +81,8 @@ final class DeviceVerificationStartViewModel: DeviceVerificationStartViewModelTy
sself.transaction = sasTransaction
sself.registerTransactionDidStateChangeNotification(transaction: sasTransaction)
sself.update(viewState: .loaded)
sself.registerTransactionDidStateChangeNotification(transaction: sasTransaction)
}, failure: {[weak self] error in
self?.update(viewState: .error(error))
})
@@ -106,11 +106,17 @@ final class DeviceVerificationStartViewModel: DeviceVerificationStartViewModelTy
private func registerTransactionDidStateChangeNotification(transaction: MXOutgoingSASTransaction) {
NotificationCenter.default.addObserver(self, selector: #selector(transactionDidStateChange(notification:)), name: NSNotification.Name.MXDeviceVerificationTransactionDidChange, object: transaction)
}
private func unregisterTransactionDidStateChangeNotification() {
NotificationCenter.default.removeObserver(self, name: .MXDeviceVerificationTransactionDidChange, object: nil)
}
@objc private func transactionDidStateChange(notification: Notification) {
guard let transaction = notification.object as? MXOutgoingSASTransaction else {
return
}
self.unregisterTransactionDidStateChangeNotification()
switch transaction.state {
case MXSASTransactionStateShowSAS: