Security settings: Offer to reset the secure backup when there is no key backup

This commit is contained in:
manuroe
2021-06-16 10:55:59 +02:00
parent 40c5841b9b
commit a419d61c7f
3 changed files with 18 additions and 17 deletions
@@ -134,7 +134,7 @@ private enum BackupRows {
.info(text: text)
]
case .noBackup:
case .noKeyBackup:
let noBackup = VectorL10n.settingsKeyBackupInfoNone
let signoutWarning = VectorL10n.settingsKeyBackupInfoSignoutWarning
@@ -144,11 +144,12 @@ private enum BackupRows {
backupRows = [
.info(text: VectorL10n.securitySettingsSecureBackupDescription),
.info(text: backupInfoText),
.createKeyBackupAction
.createKeyBackupAction,
.resetSecureBackupAction
]
case .backup(let keyBackupVersion, let keyBackupVersionTrust),
.backupAndRunning(let keyBackupVersion, let keyBackupVersionTrust, _):
case .keyBackup(let keyBackupVersion, let keyBackupVersionTrust),
.keyBackupAndRunning(let keyBackupVersion, let keyBackupVersionTrust, _):
let info = VectorL10n.securitySettingsSecureBackupDescription
let backupStatus = VectorL10n.securitySettingsSecureBackupInfoValid
@@ -212,7 +213,7 @@ private enum BackupRows {
//
// backupRows = backupAndRunningViewStateRows
case .backupNotTrusted(let keyBackupVersion, let keyBackupVersionTrust):
case .keyBackupNotTrusted(let keyBackupVersion, let keyBackupVersionTrust):
// TODO: What?
let info = VectorL10n.securitySettingsSecureBackupDescription
@@ -90,19 +90,19 @@ final class SettingsSecureBackupViewModel: SettingsSecureBackupViewModelType {
viewState = .checkingBackup
case MXKeyBackupStateDisabled, MXKeyBackupStateEnabling:
viewState = .noBackup
viewState = .noKeyBackup
case MXKeyBackupStateNotTrusted:
guard let keyBackupVersion = self.keyBackup.keyBackupVersion, let keyBackupVersionTrust = keyBackupVersionTrust else {
return
}
viewState = .backupNotTrusted(keyBackupVersion, keyBackupVersionTrust)
viewState = .keyBackupNotTrusted(keyBackupVersion, keyBackupVersionTrust)
case MXKeyBackupStateReadyToBackUp:
guard let keyBackupVersion = self.keyBackup.keyBackupVersion, let keyBackupVersionTrust = keyBackupVersionTrust else {
return
}
viewState = .backup(keyBackupVersion, keyBackupVersionTrust)
viewState = .keyBackup(keyBackupVersion, keyBackupVersionTrust)
case MXKeyBackupStateWillBackUp, MXKeyBackupStateBackingUp:
guard let keyBackupVersion = self.keyBackup.keyBackupVersion, let keyBackupVersionTrust = keyBackupVersionTrust else {
@@ -115,7 +115,7 @@ final class SettingsSecureBackupViewModel: SettingsSecureBackupViewModelType {
return
}
sself.viewDelegate?.settingsSecureBackupViewModel(sself, didUpdateViewState: .backupAndRunning(keyBackupVersion, keyBackupVersionTrust, progress))
sself.viewDelegate?.settingsSecureBackupViewModel(sself, didUpdateViewState: .keyBackupAndRunning(keyBackupVersion, keyBackupVersionTrust, progress))
}
default:
break
@@ -20,16 +20,16 @@ import UIKit
///
/// - checkingBackup: Load current backup on the homeserver
/// - checkError: Fail to load current backup data
/// - noBackup: There is no backup on the homeserver
/// - backup: There is a valid backup on the homeserver. All keys have been backed up to it
/// - backupAndRunning: There is a valid backup on the homeserver. Keys are being sent to it
/// - backupButNotVerified: There is a backup on the homeserver but it has not been verified yet
/// - noKeyBackup: There is no backup on the homeserver
/// - keyBackup: There is a valid backup on the homeserver. All keys have been backed up to it
/// - keyBackupAndRunning: There is a valid backup on the homeserver. Keys are being sent to it
/// - keyBackupNotTrusted: There is a backup on the homeserver but it is not trusted
enum SettingsSecureBackupViewState {
case checkingBackup
case noBackup
case backup(MXKeyBackupVersion, MXKeyBackupVersionTrust)
case backupAndRunning(MXKeyBackupVersion, MXKeyBackupVersionTrust, Progress)
case backupNotTrusted(MXKeyBackupVersion, MXKeyBackupVersionTrust)
case noKeyBackup
case keyBackup(MXKeyBackupVersion, MXKeyBackupVersionTrust)
case keyBackupAndRunning(MXKeyBackupVersion, MXKeyBackupVersionTrust, Progress)
case keyBackupNotTrusted(MXKeyBackupVersion, MXKeyBackupVersionTrust)
}
/// State representing a network request made by the module