From e6ea66f9c500ec469013422271d2ab39dad5d2c2 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 12 Jun 2025 16:05:28 -0300 Subject: [PATCH] Add proper turn off backups string for paid tier. --- .../backups/remote/RemoteBackupsSettingsFragment.kt | 10 +++++++++- .../app/backups/remote/RemoteBackupsSettingsState.kt | 2 ++ .../backups/remote/RemoteBackupsSettingsViewModel.kt | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt index 71327b5d59..f1c710f724 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsFragment.kt @@ -552,6 +552,7 @@ private fun RemoteBackupsSettingsContent( RemoteBackupsSettingsState.Dialog.TURN_OFF_AND_DELETE_BACKUPS -> { TurnOffAndDeleteBackupsDialog( + tier = state.tier!!, onConfirm = contentCallbacks::onTurnOffAndDeleteBackupsConfirm, onDismiss = contentCallbacks::onDialogDismissed ) @@ -1482,12 +1483,18 @@ private fun FailedToTurnOffBackupDialog( @Composable private fun TurnOffAndDeleteBackupsDialog( + tier: MessageBackupTier, onConfirm: () -> Unit, onDismiss: () -> Unit ) { + val body = when (tier) { + MessageBackupTier.FREE -> R.string.RemoteBackupsSettingsFragment__your_backup_will_be_deleted_and_no_new_backups_will_be_created + MessageBackupTier.PAID -> R.string.RemoteBackupsSettingsFragment__your_subscription_will_be_canceled + } + Dialogs.SimpleAlertDialog( title = stringResource(id = R.string.RemoteBackupsSettingsFragment__turn_off_and_delete_backups), - body = stringResource(id = R.string.RemoteBackupsSettingsFragment__your_backup_will_be_deleted_and_no_new_backups_will_be_created), + body = stringResource(id = body), confirm = stringResource(id = R.string.RemoteBackupsSettingsFragment__turn_off_and_delete), dismiss = stringResource(id = android.R.string.cancel), confirmColor = MaterialTheme.colorScheme.error, @@ -1988,6 +1995,7 @@ private fun FailedToTurnOffBackupDialogPreview() { private fun TurnOffAndDeleteBackupsDialogPreview() { Previews.Preview { TurnOffAndDeleteBackupsDialog( + tier = MessageBackupTier.PAID, onConfirm = {}, onDismiss = {} ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsState.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsState.kt index a6f5b6a6db..427d23c1d3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsState.kt @@ -6,9 +6,11 @@ package org.thoughtcrime.securesms.components.settings.app.backups.remote import org.thoughtcrime.securesms.backup.v2.BackupFrequency +import org.thoughtcrime.securesms.backup.v2.MessageBackupTier import org.thoughtcrime.securesms.components.settings.app.backups.BackupState data class RemoteBackupsSettingsState( + val tier: MessageBackupTier? = null, val backupsEnabled: Boolean, val canViewBackupKey: Boolean = false, val canBackUpUsingCellular: Boolean = false, diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt index b70496bc16..a7d151c46f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/backups/remote/RemoteBackupsSettingsViewModel.kt @@ -57,6 +57,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() { private val _state = MutableStateFlow( RemoteBackupsSettingsState( + tier = SignalStore.backup.backupTier, backupsEnabled = SignalStore.backup.areBackupsEnabled, canViewBackupKey = !TextSecurePreferences.isUnauthorizedReceived(AppDependencies.application), lastBackupTimestamp = SignalStore.backup.lastBackupTime, @@ -224,6 +225,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() { private suspend fun performStateRefresh(lastPurchase: InAppPaymentTable.InAppPayment?) { _state.update { it.copy( + tier = SignalStore.backup.backupTier, backupsEnabled = SignalStore.backup.areBackupsEnabled, lastBackupTimestamp = SignalStore.backup.lastBackupTime, backupMediaSize = SignalDatabase.attachments.getEstimatedArchiveMediaSize(), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 21b2dda84c..a2b9dd0b3c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8155,6 +8155,8 @@ Turn off and delete backups? Your backup will be deleted and no new backups will be created. Any media stored in your backup will be downloaded to your phone now. + + Your subscription will be canceled and you won\'t be charged again. Your backup will also be deleted and no new backups will be created. Any media stored in your backup will be downloaded to your phone now. Turn off and delete