From 1a8988f82521adba384daede1c5fd0bb0f90837f Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 31 Oct 2024 12:33:48 -0400 Subject: [PATCH] Fix incorrect backup passphrase error toast not showing. --- .../RestoreLocalBackupFragment.kt | 14 ++++++++------ .../restorelocalbackup/RestoreLocalBackupState.kt | 1 - .../RestoreLocalBackupViewModel.kt | 5 ++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupFragment.kt index bf50dff136..d7f5bb5626 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupFragment.kt @@ -93,12 +93,11 @@ class RestoreLocalBackupFragment : LoggingFragment(R.layout.fragment_restore_loc } } - restoreLocalBackupViewModel.backupComplete.observe(viewLifecycleOwner) { - if (it.first) { - val importResult = it.second - if (importResult == null) { - onBackupCompletedSuccessfully() - } else { + restoreLocalBackupViewModel.importResult.observe(viewLifecycleOwner) { importResult -> + when (importResult) { + null -> Unit + RestoreRepository.BackupImportResult.SUCCESS -> onBackupCompletedSuccessfully() + else -> { handleBackupImportError(importResult) restoreLocalBackupViewModel.backupImportErrorShown() } @@ -151,14 +150,17 @@ class RestoreLocalBackupFragment : LoggingFragment(R.layout.fragment_restore_loc Log.i(TAG, "Notifying user of restore failure due to version downgrade.") Toast.makeText(requireContext(), R.string.RegistrationActivity_backup_failure_downgrade, Toast.LENGTH_LONG).show() } + RestoreRepository.BackupImportResult.FAILURE_FOREIGN_KEY -> { Log.i(TAG, "Notifying user of restore failure due to foreign key.") Toast.makeText(requireContext(), R.string.RegistrationActivity_backup_failure_foreign_key, Toast.LENGTH_LONG).show() } + RestoreRepository.BackupImportResult.FAILURE_UNKNOWN -> { Log.i(TAG, "Notifying user of restore failure due to incorrect passphrase.") Toast.makeText(requireContext(), R.string.RegistrationActivity_incorrect_backup_passphrase, Toast.LENGTH_LONG).show() } + RestoreRepository.BackupImportResult.SUCCESS -> { Log.w(TAG, "Successful backup import should not be handled in this function.", IllegalStateException()) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupState.kt b/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupState.kt index f62af42146..6d9b16c4a1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupState.kt @@ -22,7 +22,6 @@ data class RestoreLocalBackupState( val backupVerifyingInProgress: Boolean = false, val backupProgressCount: Long = -1, val backupEstimatedTotalCount: Long = -1, - val backupRestoreComplete: Boolean = false, val backupImportResult: RestoreRepository.BackupImportResult? = null, val abort: Boolean = false ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupViewModel.kt index aa2fd31ba6..db358d1e8c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/restore/restorelocalbackup/RestoreLocalBackupViewModel.kt @@ -30,7 +30,7 @@ class RestoreLocalBackupViewModel(fileBackupUri: Uri) : ViewModel() { val backupReadError = store.map { it.backupFileStateError }.asLiveData() - val backupComplete = store.map { Pair(it.backupRestoreComplete, it.backupImportResult) }.asLiveData() + val importResult = store.map { it.backupImportResult }.asLiveData() fun prepareRestore(context: Context) { val backupFileUri = store.value.uri @@ -99,9 +99,8 @@ class RestoreLocalBackupViewModel(fileBackupUri: Uri) : ViewModel() { store.update { it.copy( - backupImportResult = if (importResult == RestoreRepository.BackupImportResult.SUCCESS) null else importResult, + backupImportResult = importResult, restoreInProgress = false, - backupRestoreComplete = importResult == RestoreRepository.BackupImportResult.SUCCESS, backupEstimatedTotalCount = -1L, backupProgressCount = -1L, backupVerifyingInProgress = false