diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt index 056ffd8899..f82a2694bc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/BackupRepository.kt @@ -755,7 +755,7 @@ enum class MessageBackupTier(val value: Int) { } override fun deserialize(data: Long): MessageBackupTier? { - return values().firstOrNull { it.value == data.toInt() } ?: null + return values().firstOrNull { it.value == data.toInt() } } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowState.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowState.kt index 384df3222e..f61c051f8a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsFlowState.kt @@ -11,8 +11,8 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.lock.v2.PinKeyboardType data class MessageBackupsFlowState( - val selectedMessageBackupTier: MessageBackupTier? = null, - val currentMessageBackupTier: MessageBackupTier? = null, + val selectedMessageBackupTier: MessageBackupTier? = SignalStore.backup().backupTier, + val currentMessageBackupTier: MessageBackupTier? = SignalStore.backup().backupTier, val availableBackupTiers: List = emptyList(), val selectedPaymentMethod: InAppPaymentData.PaymentMethodType? = null, val availablePaymentMethods: List = emptyList(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTypeSelectionScreen.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTypeSelectionScreen.kt index ecbc2a4463..4baa45e674 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTypeSelectionScreen.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/ui/subscription/MessageBackupsTypeSelectionScreen.kt @@ -146,6 +146,7 @@ fun MessageBackupsTypeSelectionScreen( Buttons.LargePrimary( onClick = onNextClicked, + enabled = selectedBackupTier != null, modifier = Modifier .fillMaxWidth() .padding(vertical = 16.dp) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsFragment.kt index 000eaa3b4b..5ca05462f0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsFragment.kt @@ -154,6 +154,11 @@ class RemoteBackupsSettingsFragment : ComposeFragment() { super.onViewCreated(view, savedInstanceState) EventBus.getDefault().registerForLifecycle(subscriber = this, lifecycleOwner = viewLifecycleOwner) } + + override fun onResume() { + super.onResume() + viewModel.refresh() + } } /** diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsViewModel.kt index 080e5d025b..1e51c502df 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/RemoteBackupsSettingsViewModel.kt @@ -50,6 +50,15 @@ class RemoteBackupsSettingsViewModel : ViewModel() { internalState.value = state.value.copy(snackbar = snackbar) } + fun refresh() { + internalState.value = state.value.copy( + messageBackupsTier = SignalStore.backup().backupTier, + lastBackupTimestamp = SignalStore.backup().lastBackupTime, + backupSize = SignalStore.backup().totalBackupSize, + backupsFrequency = SignalStore.backup().backupFrequency + ) + } + fun turnOffAndDeleteBackups() { // TODO [message-backups] -- Delete. SignalStore.backup().areBackupsEnabled = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/type/BackupsTypeSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/type/BackupsTypeSettingsFragment.kt index 6a007f4a9b..61e2d4d426 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/type/BackupsTypeSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/type/BackupsTypeSettingsFragment.kt @@ -70,6 +70,11 @@ class BackupsTypeSettingsFragment : ComposeFragment() { startActivity(Intent(requireContext(), MessageBackupsFlowActivity::class.java)) } } + + override fun onResume() { + super.onResume() + viewModel.refresh() + } } private interface ContentCallbacks { @@ -130,7 +135,7 @@ private fun BackupsTypeRow( backupsTier: MessageBackupTier, nextRenewalTimestamp: Long ) { - val messageBackupsType = remember { + val messageBackupsType = remember(backupsTier) { getTierDetails(backupsTier) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/type/BackupsTypeSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/type/BackupsTypeSettingsViewModel.kt index 1f69fa6ad5..8834512621 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/type/BackupsTypeSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/backups/type/BackupsTypeSettingsViewModel.kt @@ -18,4 +18,8 @@ class BackupsTypeSettingsViewModel : ViewModel() { ) val state: State = internalState + + fun refresh() { + internalState.value = state.value.copy(backupsTier = SignalStore.backup().backupTier) + } }