From 178c468436475ed1eca28f92995492f86965218b Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 10 Jun 2025 11:04:01 -0400 Subject: [PATCH] Prevent viewing backup key when unregistered. --- .../app/backups/remote/RemoteBackupsSettingsFragment.kt | 5 ++++- .../app/backups/remote/RemoteBackupsSettingsState.kt | 1 + .../app/backups/remote/RemoteBackupsSettingsViewModel.kt | 2 ++ 3 files changed, 7 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 e76188b4b8..6f00ff1060 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 @@ -500,6 +500,7 @@ private fun RemoteBackupsSettingsContent( } else if (state.backupsEnabled) { appendBackupDetailsItems( backupState = state.backupState, + canViewBackupKey = state.canViewBackupKey, backupRestoreState = backupRestoreState, backupProgress = backupProgress, lastBackupTimestamp = state.lastBackupTimestamp, @@ -800,6 +801,7 @@ private fun DescriptionText( private fun LazyListScope.appendBackupDetailsItems( backupState: RemoteBackupsSettingsState.BackupState, + canViewBackupKey: Boolean, backupRestoreState: BackupRestoreState, backupProgress: ArchiveUploadProgressState?, lastBackupTimestamp: Long, @@ -901,7 +903,8 @@ private fun LazyListScope.appendBackupDetailsItems( item { Rows.TextRow( text = stringResource(R.string.RemoteBackupsSettingsFragment__view_backup_key), - onClick = contentCallbacks::onViewBackupKeyClick + onClick = contentCallbacks::onViewBackupKeyClick, + enabled = canViewBackupKey ) } 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 6cf87ef1a5..32cc5a82e8 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 @@ -13,6 +13,7 @@ import kotlin.time.Duration.Companion.seconds data class RemoteBackupsSettingsState( val backupsEnabled: Boolean, + val canViewBackupKey: Boolean = false, val canBackUpUsingCellular: Boolean = false, val canRestoreUsingCellular: Boolean = false, val hasRedemptionError: 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 69736066dc..ef3ede818a 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 @@ -47,6 +47,7 @@ import org.thoughtcrime.securesms.jobs.BackupMessagesJob import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.keyvalue.protos.ArchiveUploadProgressState import org.thoughtcrime.securesms.service.MessageBackupListener +import org.thoughtcrime.securesms.util.TextSecurePreferences import org.whispersystems.signalservice.api.subscriptions.ActiveSubscription import java.math.BigDecimal import java.util.Currency @@ -68,6 +69,7 @@ class RemoteBackupsSettingsViewModel : ViewModel() { private val _state = MutableStateFlow( RemoteBackupsSettingsState( backupsEnabled = SignalStore.backup.areBackupsEnabled, + canViewBackupKey = !TextSecurePreferences.isUnauthorizedReceived(AppDependencies.application), lastBackupTimestamp = SignalStore.backup.lastBackupTime, backupsFrequency = SignalStore.backup.backupFrequency, canBackUpUsingCellular = SignalStore.backup.backupWithCellular,