Preserve storageCapable across restore progress emissions in local backup V1 restore.

This commit is contained in:
Greyson Parrelli
2026-07-09 18:48:53 +00:00
parent 66390b4fe4
commit 7f63af659d
2 changed files with 17 additions and 6 deletions
@@ -196,16 +196,18 @@ class LocalBackupRestoreViewModel(
is LocalBackupRestoreProgress.Preparing -> LocalBackupRestoreState(
restorePhase = LocalBackupRestoreState.RestorePhase.Preparing,
aep = currentState.aep,
v1Passphrase = currentState.v1Passphrase
v1Passphrase = currentState.v1Passphrase,
storageCapable = currentState.storageCapable
)
is LocalBackupRestoreProgress.InProgress -> LocalBackupRestoreState(
restorePhase = LocalBackupRestoreState.RestorePhase.InProgress,
progressFraction = progress.progressFraction,
aep = currentState.aep,
v1Passphrase = currentState.v1Passphrase
v1Passphrase = currentState.v1Passphrase,
storageCapable = currentState.storageCapable
)
is LocalBackupRestoreProgress.Complete -> {
onRestoreComplete(_state.value.copy(aep = currentState.aep, v1Passphrase = currentState.v1Passphrase), progress)
onRestoreComplete(_state.value.copy(aep = currentState.aep, v1Passphrase = currentState.v1Passphrase, storageCapable = currentState.storageCapable), progress)
_state.value
}
is LocalBackupRestoreProgress.IncorrectCredential -> {
@@ -218,7 +220,8 @@ class LocalBackupRestoreViewModel(
restorePhase = LocalBackupRestoreState.RestorePhase.Error,
errorMessage = progress.cause.message,
aep = currentState.aep,
v1Passphrase = currentState.v1Passphrase
v1Passphrase = currentState.v1Passphrase,
storageCapable = currentState.storageCapable
)
}
}
@@ -302,7 +302,11 @@ class LocalBackupRestoreViewModelTest {
)
val initialState = LocalBackupRestoreState(backupInfo = backupInfo, selectedFolderUri = mockk())
every { mockRepository.restoreV1Backup(any(), any(), any()) } returns flowOf(LocalBackupRestoreProgress.Complete(restoredSvrPin = null, restoredProfileKey = null))
every { mockRepository.restoreV1Backup(any(), any(), any()) } returns flowOf(
LocalBackupRestoreProgress.Preparing,
LocalBackupRestoreProgress.InProgress(bytesRead = 50, totalBytes = 100),
LocalBackupRestoreProgress.Complete(restoredSvrPin = null, restoredProfileKey = null)
)
viewModel.applyEvent(initialState, LocalBackupRestoreEvents.PassphraseSubmitted("passphrase"), stateEmitter)
@@ -326,7 +330,11 @@ class LocalBackupRestoreViewModelTest {
)
val initialState = LocalBackupRestoreState(backupInfo = backupInfo, selectedFolderUri = mockk())
every { mockRepository.restoreV1Backup(any(), any(), any()) } returns flowOf(LocalBackupRestoreProgress.Complete(restoredSvrPin = null, restoredProfileKey = null))
every { mockRepository.restoreV1Backup(any(), any(), any()) } returns flowOf(
LocalBackupRestoreProgress.Preparing,
LocalBackupRestoreProgress.InProgress(bytesRead = 50, totalBytes = 100),
LocalBackupRestoreProgress.Complete(restoredSvrPin = null, restoredProfileKey = null)
)
viewModel.applyEvent(initialState, LocalBackupRestoreEvents.PassphraseSubmitted("passphrase"), stateEmitter)