From 20d16a8433cbb7936a82bfdf68695bee673aebcc Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 27 Feb 2026 13:36:13 -0400 Subject: [PATCH] Show immediate progress feedback when creating a local backup. Co-authored-by: Greyson Parrelli --- .../backups/local/LocalBackupsSettingsCallback.kt | 2 ++ .../app/backups/local/LocalBackupsViewModel.kt | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/local/LocalBackupsSettingsCallback.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/local/LocalBackupsSettingsCallback.kt index 0625a16e54..83716e97dc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/local/LocalBackupsSettingsCallback.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/local/LocalBackupsSettingsCallback.kt @@ -98,6 +98,7 @@ class DefaultLocalBackupsSettingsCallback( override fun onCreateBackupClick() { if (BackupUtil.isUserSelectionRequired(fragment.requireContext())) { Log.i(TAG, "Queueing backup...") + viewModel.onBackupStarted() enqueueArchive(false) } else { Permissions.with(fragment) @@ -105,6 +106,7 @@ class DefaultLocalBackupsSettingsCallback( .ifNecessary() .onAllGranted { Log.i(TAG, "Queuing backup...") + viewModel.onBackupStarted() enqueueArchive(false) } .withPermanentDenialDialog( diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/local/LocalBackupsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/local/LocalBackupsViewModel.kt index e8509f6eea..ab397dba69 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/local/LocalBackupsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/local/LocalBackupsViewModel.kt @@ -116,6 +116,19 @@ class LocalBackupsViewModel : ViewModel(), BackupKeyCredentialManagerHandler { } } + fun onBackupStarted() { + val context = AppDependencies.application + internalSettingsState.update { + it.copy( + progress = BackupProgressState.InProgress( + summary = context.getString(R.string.BackupsPreferenceFragment__in_progress), + percentLabel = context.getString(R.string.BackupsPreferenceFragment__d_so_far, 0), + progressFraction = null + ) + ) + } + } + @Subscribe(threadMode = ThreadMode.MAIN) fun onBackupEvent(event: LocalBackupV2Event) { val context = AppDependencies.application