From eeae9579d97b4ea559ae616f9dd9dc7633ee315b Mon Sep 17 00:00:00 2001 From: jeffrey-signal Date: Fri, 20 Jun 2025 14:53:26 -0400 Subject: [PATCH] Fix progress bar stuck at 100% after successful backup restore. --- .../app/backups/remote/RemoteBackupsSettingsViewModel.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt index cbd527ee7e..9a107cd983 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt @@ -13,8 +13,10 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.flatMapLatest +import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.takeWhile import kotlinx.coroutines.flow.update import kotlinx.coroutines.isActive @@ -112,10 +114,9 @@ class RemoteBackupsSettingsViewModel : ViewModel() { Log.d(TAG, "Backup is being restored. Collecting updates.") restoreProgress .dataFlow + .onEach { latest -> _restoreState.update { BackupRestoreState.FromBackupStatusData(latest) } } .takeWhile { it !is BackupStatusData.RestoringMedia || it.restoreStatus != BackupStatusData.RestoreStatus.FINISHED } - .collectLatest { latest -> - _restoreState.update { BackupRestoreState.FromBackupStatusData(latest) } - } + .collect() } else if ( !SignalStore.backup.optimizeStorage && SignalStore.backup.userManuallySkippedMediaRestore &&