From 1a1e1ea6314329aa70cb4724cb24118e2fa4abc0 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 15 Jul 2025 10:09:45 -0400 Subject: [PATCH] Select first backup subscription if selection is unavailable. --- .../v2/ui/subscription/MessageBackupsFlowViewModel.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowViewModel.kt index 2a73092929..d8fe7b0466 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowViewModel.kt @@ -62,7 +62,7 @@ class MessageBackupsFlowViewModel( private val internalStateFlow = MutableStateFlow( MessageBackupsFlowState( availableBackupTypes = emptyList(), - selectedMessageBackupTier = initialTierSelection ?: SignalStore.backup.backupTier, + selectedMessageBackupTier = initialTierSelection ?: SignalStore.backup.backupTier ?: MessageBackupTier.FREE, startScreen = startScreen ) ) @@ -88,7 +88,7 @@ class MessageBackupsFlowViewModel( } viewModelScope.launch { - val availableBackupTypes = try { + val availableBackupTypes: List = try { withContext(SignalDispatchers.IO) { BackupRepository.getAvailableBackupsTypes( if (!RemoteConfig.messageBackups) emptyList() else listOf(MessageBackupTier.FREE, MessageBackupTier.PAID) @@ -99,8 +99,11 @@ class MessageBackupsFlowViewModel( emptyList() } - internalStateFlow.update { - it.copy(availableBackupTypes = availableBackupTypes) + internalStateFlow.update { state -> + state.copy( + availableBackupTypes = availableBackupTypes, + selectedMessageBackupTier = if (state.selectedMessageBackupTier in availableBackupTypes.map { it.tier }) state.selectedMessageBackupTier else availableBackupTypes.firstOrNull()?.tier + ) } }