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? {
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
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<MessageBackupTier> = emptyList(),
val selectedPaymentMethod: InAppPaymentData.PaymentMethodType? = null,
val availablePaymentMethods: List<InAppPaymentData.PaymentMethodType> = emptyList(),

View file

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

View file

@ -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()
}
}
/**

View file

@ -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

View file

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

View file

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