Fix progress bar stuck at 100% after successful backup restore.

This commit is contained in:
jeffrey-signal
2025-06-20 14:53:26 -04:00
committed by Cody Henthorne
parent 3b9dec5d42
commit eeae9579d9

View File

@@ -13,8 +13,10 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.flatMapLatest
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.takeWhile import kotlinx.coroutines.flow.takeWhile
import kotlinx.coroutines.flow.update import kotlinx.coroutines.flow.update
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
@@ -112,10 +114,9 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
Log.d(TAG, "Backup is being restored. Collecting updates.") Log.d(TAG, "Backup is being restored. Collecting updates.")
restoreProgress restoreProgress
.dataFlow .dataFlow
.onEach { latest -> _restoreState.update { BackupRestoreState.FromBackupStatusData(latest) } }
.takeWhile { it !is BackupStatusData.RestoringMedia || it.restoreStatus != BackupStatusData.RestoreStatus.FINISHED } .takeWhile { it !is BackupStatusData.RestoringMedia || it.restoreStatus != BackupStatusData.RestoreStatus.FINISHED }
.collectLatest { latest -> .collect()
_restoreState.update { BackupRestoreState.FromBackupStatusData(latest) }
}
} else if ( } else if (
!SignalStore.backup.optimizeStorage && !SignalStore.backup.optimizeStorage &&
SignalStore.backup.userManuallySkippedMediaRestore && SignalStore.backup.userManuallySkippedMediaRestore &&