Make message backup settings screen update properly.

This commit is contained in:
Clark 2024-06-10 14:46:50 -04:00 committed by Greyson Parrelli
parent df19cb5795
commit f94c007af8
7 changed files with 28 additions and 4 deletions

View file

@ -755,7 +755,7 @@ enum class MessageBackupTier(val value: Int) {
} }
override fun deserialize(data: Long): MessageBackupTier? { override fun deserialize(data: Long): MessageBackupTier? {
return values().firstOrNull { it.value == data.toInt() } ?: null return values().firstOrNull { it.value == data.toInt() }
} }
} }
} }

View file

@ -11,8 +11,8 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.lock.v2.PinKeyboardType import org.thoughtcrime.securesms.lock.v2.PinKeyboardType
data class MessageBackupsFlowState( data class MessageBackupsFlowState(
val selectedMessageBackupTier: MessageBackupTier? = null, val selectedMessageBackupTier: MessageBackupTier? = SignalStore.backup().backupTier,
val currentMessageBackupTier: MessageBackupTier? = null, val currentMessageBackupTier: MessageBackupTier? = SignalStore.backup().backupTier,
val availableBackupTiers: List<MessageBackupTier> = emptyList(), val availableBackupTiers: List<MessageBackupTier> = emptyList(),
val selectedPaymentMethod: InAppPaymentData.PaymentMethodType? = null, val selectedPaymentMethod: InAppPaymentData.PaymentMethodType? = null,
val availablePaymentMethods: List<InAppPaymentData.PaymentMethodType> = emptyList(), val availablePaymentMethods: List<InAppPaymentData.PaymentMethodType> = emptyList(),

View file

@ -146,6 +146,7 @@ fun MessageBackupsTypeSelectionScreen(
Buttons.LargePrimary( Buttons.LargePrimary(
onClick = onNextClicked, onClick = onNextClicked,
enabled = selectedBackupTier != null,
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(vertical = 16.dp) .padding(vertical = 16.dp)

View file

@ -154,6 +154,11 @@ class RemoteBackupsSettingsFragment : ComposeFragment() {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
EventBus.getDefault().registerForLifecycle(subscriber = this, lifecycleOwner = viewLifecycleOwner) EventBus.getDefault().registerForLifecycle(subscriber = this, lifecycleOwner = viewLifecycleOwner)
} }
override fun onResume() {
super.onResume()
viewModel.refresh()
}
} }
/** /**

View file

@ -50,6 +50,15 @@ class RemoteBackupsSettingsViewModel : ViewModel() {
internalState.value = state.value.copy(snackbar = snackbar) 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() { fun turnOffAndDeleteBackups() {
// TODO [message-backups] -- Delete. // TODO [message-backups] -- Delete.
SignalStore.backup().areBackupsEnabled = false SignalStore.backup().areBackupsEnabled = false

View file

@ -70,6 +70,11 @@ class BackupsTypeSettingsFragment : ComposeFragment() {
startActivity(Intent(requireContext(), MessageBackupsFlowActivity::class.java)) startActivity(Intent(requireContext(), MessageBackupsFlowActivity::class.java))
} }
} }
override fun onResume() {
super.onResume()
viewModel.refresh()
}
} }
private interface ContentCallbacks { private interface ContentCallbacks {
@ -130,7 +135,7 @@ private fun BackupsTypeRow(
backupsTier: MessageBackupTier, backupsTier: MessageBackupTier,
nextRenewalTimestamp: Long nextRenewalTimestamp: Long
) { ) {
val messageBackupsType = remember { val messageBackupsType = remember(backupsTier) {
getTierDetails(backupsTier) getTierDetails(backupsTier)
} }

View file

@ -18,4 +18,8 @@ class BackupsTypeSettingsViewModel : ViewModel() {
) )
val state: State<BackupsTypeSettingsState> = internalState val state: State<BackupsTypeSettingsState> = internalState
fun refresh() {
internalState.value = state.value.copy(backupsTier = SignalStore.backup().backupTier)
}
} }