Key Backup: Use legacy screens if the private key does not work

This commit is contained in:
manuroe
2020-04-08 16:48:12 +02:00
parent 641025fac4
commit 14f707c2e5
5 changed files with 48 additions and 10 deletions
@@ -60,7 +60,7 @@ final class KeyBackupRecoverFromPrivateKeyViewModel: KeyBackupRecoverFromPrivate
self.update(viewState: .loading)
self.currentHTTPOperation = keyBackup.restoreUsingPrivateKey(inCryptoStore: keyBackupVersion, room: nil, session: nil, success: { [weak self] (_, _) in
self.currentHTTPOperation = keyBackup.restore(usingPrivateKeyKeyBackup: keyBackupVersion, room: nil, session: nil, success: { [weak self] (_, _) in
guard let sself = self else {
return
}
@@ -79,7 +79,16 @@ final class KeyBackupRecoverFromPrivateKeyViewModel: KeyBackupRecoverFromPrivate
})
}, failure: { [weak self] error in
self?.update(viewState: .error(error))
guard let sself = self else {
return
}
if (error as NSError).domain == MXKeyBackupErrorDomain
&& (error as NSError).code == Int(MXKeyBackupErrorInvalidOrMissingLocalPrivateKey.rawValue) {
sself.coordinatorDelegate?.keyBackupRecoverFromPrivateKeyViewModelDidPrivateKeyFail(sself)
} else {
sself.update(viewState: .error(error))
}
})
}