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 + ) } }