From 5a6c41e166d7a2f8eecb044143eef9973d1bf75f Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 23 Jul 2026 10:51:35 -0400 Subject: [PATCH] Reduce frequency of restore progress state logs. --- .../localbackuprestore/LocalBackupRestoreViewModel.kt | 3 +++ .../screens/messagesync/MessageSyncViewModel.kt | 7 +++++++ .../remotebackuprestore/RemoteBackupRestoreViewModel.kt | 3 +++ 3 files changed, 13 insertions(+) diff --git a/feature/registration/src/main/java/org/signal/registration/screens/localbackuprestore/LocalBackupRestoreViewModel.kt b/feature/registration/src/main/java/org/signal/registration/screens/localbackuprestore/LocalBackupRestoreViewModel.kt index 4998c0cf0e..8b36f5d788 100644 --- a/feature/registration/src/main/java/org/signal/registration/screens/localbackuprestore/LocalBackupRestoreViewModel.kt +++ b/feature/registration/src/main/java/org/signal/registration/screens/localbackuprestore/LocalBackupRestoreViewModel.kt @@ -22,6 +22,7 @@ import org.signal.core.models.AccountEntropyPool import org.signal.core.ui.compose.EventDrivenViewModel import org.signal.core.ui.navigation.ResultEventBus import org.signal.core.util.logging.Log +import org.signal.core.util.throttleLatest import org.signal.registration.RegistrationFlowEvent import org.signal.registration.RegistrationFlowState import org.signal.registration.RegistrationRepository @@ -30,6 +31,7 @@ import org.signal.registration.RestoreDecision import org.signal.registration.screens.shared.RestoreProgress import org.signal.registration.screens.util.navigateBack import org.signal.registration.screens.util.navigateTo +import kotlin.time.Duration.Companion.seconds class LocalBackupRestoreViewModel( private val repository: RegistrationRepository, @@ -52,6 +54,7 @@ class LocalBackupRestoreViewModel( init { _state + .throttleLatest(1.seconds) { it.restorePhase != LocalBackupRestoreState.RestorePhase.InProgress } .onEach { Log.d(TAG, "[State] $it") } .launchIn(viewModelScope) diff --git a/feature/registration/src/main/java/org/signal/registration/screens/messagesync/MessageSyncViewModel.kt b/feature/registration/src/main/java/org/signal/registration/screens/messagesync/MessageSyncViewModel.kt index 33542b1d6f..919994fc21 100644 --- a/feature/registration/src/main/java/org/signal/registration/screens/messagesync/MessageSyncViewModel.kt +++ b/feature/registration/src/main/java/org/signal/registration/screens/messagesync/MessageSyncViewModel.kt @@ -20,12 +20,14 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import org.signal.core.ui.compose.EventDrivenViewModel import org.signal.core.util.logging.Log +import org.signal.core.util.throttleLatest import org.signal.registration.RegistrationFlowEvent import org.signal.registration.RegistrationFlowState import org.signal.registration.RegistrationRepository import org.signal.registration.RegistrationRoute import org.signal.registration.screens.messagesync.MessageSyncScreenState.Stage import org.signal.registration.screens.util.navigateTo +import kotlin.time.Duration.Companion.seconds /** * Drives the link-and-sync message backup restore that runs after this device is registered as a @@ -49,6 +51,7 @@ class MessageSyncViewModel( init { _state + .throttleLatest(1.seconds) { !it.isProgressUpdate() } .onEach { Log.d(TAG, "[State] $it") } .launchIn(viewModelScope) @@ -144,3 +147,7 @@ class MessageSyncViewModel( } } } + +private fun MessageSyncScreenState.isProgressUpdate(): Boolean { + return !showSyncFailedDialog && (stage is Stage.Downloading || stage is Stage.Restoring) +} diff --git a/feature/registration/src/main/java/org/signal/registration/screens/remotebackuprestore/RemoteBackupRestoreViewModel.kt b/feature/registration/src/main/java/org/signal/registration/screens/remotebackuprestore/RemoteBackupRestoreViewModel.kt index e9e4bda3cb..addb83cb59 100644 --- a/feature/registration/src/main/java/org/signal/registration/screens/remotebackuprestore/RemoteBackupRestoreViewModel.kt +++ b/feature/registration/src/main/java/org/signal/registration/screens/remotebackuprestore/RemoteBackupRestoreViewModel.kt @@ -20,6 +20,7 @@ import kotlinx.coroutines.withContext import org.signal.core.models.AccountEntropyPool import org.signal.core.ui.compose.EventDrivenViewModel import org.signal.core.util.logging.Log +import org.signal.core.util.throttleLatest import org.signal.libsignal.net.RequestResult import org.signal.registration.NetworkController import org.signal.registration.RegistrationFlowEvent @@ -31,6 +32,7 @@ import org.signal.registration.screens.shared.RestoreProgress import org.signal.registration.screens.util.navigateBack import org.signal.registration.screens.util.navigateTo import kotlin.coroutines.CoroutineContext +import kotlin.time.Duration.Companion.seconds class RemoteBackupRestoreViewModel( private val aep: AccountEntropyPool, @@ -49,6 +51,7 @@ class RemoteBackupRestoreViewModel( init { _state + .throttleLatest(1.seconds) { it.restoreState != RemoteBackupRestoreState.RestoreState.InProgress } .onEach { Log.d(TAG, "[State] $it") } .launchIn(viewModelScope)