More secure backup tweaks (#2212)

* Make sure the indicator for disabling backups is dismissed together with the screen

* Get rid of the .disabled key backup state as it has no correspondant on the rust side and is confusing

* Remove superflous BackupState extensions, add more logs
This commit is contained in:
Stefan Ceriu
2023-12-07 13:19:58 +02:00
committed by GitHub
parent e8b446c909
commit 495ee8ab38
5 changed files with 64 additions and 34 deletions
@@ -55,7 +55,7 @@ class SecureBackupScreenViewModel: SecureBackupScreenViewModelType, SecureBackup
actionsSubject.send(.recoveryKey)
case .keyBackup:
switch secureBackupController.keyBackupState.value {
case .disabled, .unknown:
case .unknown:
enableBackup()
case .enabled:
actionsSubject.send(.keyBackup)
@@ -23,7 +23,7 @@ struct SecureBackupScreen: View {
var body: some View {
Form {
if context.viewState.keyBackupState == .disabled {
if context.viewState.keyBackupState == .unknown {
keyBackupSection
} else {
keyBackupSection
@@ -77,12 +77,10 @@ struct SecureBackupScreen: View {
ListRow(label: .plain(title: L10n.screenChatBackupKeyBackupActionDisable, role: .destructive), kind: .navigationLink {
context.send(viewAction: .keyBackup)
})
case .disabled, .enabling:
case .unknown, .enabling:
ListRow(label: .plain(title: L10n.screenChatBackupKeyBackupActionEnable), kind: .navigationLink {
context.send(viewAction: .keyBackup)
})
case .unknown:
EmptyView()
}
}
@@ -128,7 +126,7 @@ struct SecureBackupScreen: View {
struct SecureBackupScreen_Previews: PreviewProvider, TestablePreview {
static let bothSetupViewModel = viewModel(keyBackupState: .enabled, recoveryKeyState: .enabled)
static let onlyKeyBackupSetUpViewModel = viewModel(keyBackupState: .enabled, recoveryKeyState: .disabled)
static let keyBackupDisabledViewModel = viewModel(keyBackupState: .disabled, recoveryKeyState: .disabled)
static let keyBackupDisabledViewModel = viewModel(keyBackupState: .unknown, recoveryKeyState: .disabled)
static let recoveryIncompleteViewModel = viewModel(keyBackupState: .enabled, recoveryKeyState: .incomplete)
static var previews: some View {