mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-18 23:48:29 +02:00
Security settings: Manage the case where the is a key backup but no secure backup
This commit is contained in:
@@ -141,6 +141,14 @@ private enum BackupRows {
|
||||
.description(text: VectorL10n.securitySettingsSecureBackupDescription)
|
||||
]
|
||||
|
||||
case .noSecureBackupButKeyBackup(let keyBackupVersion, let keyBackupVersionTrust):
|
||||
backupRows = [
|
||||
.info(text: VectorL10n.securitySettingsSecureBackupInfoValid),
|
||||
.restoreFromKeyBackupAction(keyBackupVersion: keyBackupVersion, title: VectorL10n.securitySettingsSecureBackupRestore),
|
||||
.deleteKeyBackupAction(keyBackupVersion: keyBackupVersion),
|
||||
.description(text: VectorL10n.securitySettingsSecureBackupDescription)
|
||||
]
|
||||
|
||||
case .noKeyBackup:
|
||||
let noBackup = VectorL10n.settingsKeyBackupInfoNone
|
||||
let signoutWarning = VectorL10n.settingsKeyBackupInfoSignoutWarning
|
||||
|
||||
@@ -85,12 +85,6 @@ final class SettingsSecureBackupViewModel: SettingsSecureBackupViewModelType {
|
||||
|
||||
private func computeState(withBackupVersionTrust keyBackupVersionTrust: MXKeyBackupVersionTrust? = nil) {
|
||||
|
||||
// We want to have a secure backup before having a key backup
|
||||
if recoveryService.hasRecovery() == false {
|
||||
self.viewDelegate?.settingsSecureBackupViewModel(self, didUpdateViewState: .noSecureBackup)
|
||||
return
|
||||
}
|
||||
|
||||
var viewState: SettingsSecureBackupViewState?
|
||||
switch self.keyBackup.state {
|
||||
|
||||
@@ -129,9 +123,23 @@ final class SettingsSecureBackupViewModel: SettingsSecureBackupViewModelType {
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
||||
// We want to have a secure backup before having a key backup
|
||||
if recoveryService.hasRecovery() == false {
|
||||
switch viewState {
|
||||
case .checkingBackup:
|
||||
break
|
||||
case .keyBackup(let keyBackupVersion, let keyBackupVersionTrust),
|
||||
.keyBackupAndRunning(let keyBackupVersion, let keyBackupVersionTrust, _),
|
||||
.keyBackupNotTrusted(let keyBackupVersion, let keyBackupVersionTrust):
|
||||
viewState = .noSecureBackupButKeyBackup(keyBackupVersion, keyBackupVersionTrust)
|
||||
default:
|
||||
viewState = .noSecureBackup
|
||||
}
|
||||
}
|
||||
|
||||
if let vviewState = viewState {
|
||||
self.viewDelegate?.settingsSecureBackupViewModel(self, didUpdateViewState: vviewState)
|
||||
if let viewState = viewState {
|
||||
self.viewDelegate?.settingsSecureBackupViewModel(self, didUpdateViewState: viewState)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import UIKit
|
||||
enum SettingsSecureBackupViewState {
|
||||
case checkingBackup
|
||||
case noSecureBackup
|
||||
case noSecureBackupButKeyBackup(MXKeyBackupVersion, MXKeyBackupVersionTrust)
|
||||
case noKeyBackup
|
||||
case keyBackup(MXKeyBackupVersion, MXKeyBackupVersionTrust)
|
||||
case keyBackupAndRunning(MXKeyBackupVersion, MXKeyBackupVersionTrust, Progress)
|
||||
|
||||
Reference in New Issue
Block a user