From 97897a84aa75f99f94e4dde3e9329081babebaf8 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Wed, 24 Jun 2026 14:34:02 -0300 Subject: [PATCH] Gate "Allow sealed sender from anyone" to primary device. --- .../AdvancedPrivacySettingsFragment.kt | 19 +++++++++++-------- .../advanced/AdvancedPrivacySettingsState.kt | 3 ++- .../AdvancedPrivacySettingsViewModel.kt | 3 ++- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsFragment.kt index 45b938ba71..19bb01f62c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsFragment.kt @@ -274,13 +274,15 @@ private fun AdvancedPrivacySettingsScreen( ) } - item { - Rows.ToggleRow( - checked = state.allowSealedSenderFromAnyone, - text = stringResource(R.string.preferences_communication__sealed_sender_allow_from_anyone), - label = stringResource(R.string.preferences_communication__sealed_sender_allow_from_anyone_description), - onCheckChanged = callbacks::onAllowSealedSenderFromAnyoneChanged - ) + if (state.isPrimaryDevice) { + item { + Rows.ToggleRow( + checked = state.allowSealedSenderFromAnyone, + text = stringResource(R.string.preferences_communication__sealed_sender_allow_from_anyone), + label = stringResource(R.string.preferences_communication__sealed_sender_allow_from_anyone_description), + onCheckChanged = callbacks::onAllowSealedSenderFromAnyoneChanged + ) + } } item { @@ -342,7 +344,8 @@ private fun AdvancedPrivacySettingsScreenPreview() { showSealedSenderStatusIcon = false, allowSealedSenderFromAnyone = false, showProgressSpinner = false, - allowAutomaticKeyVerification = false + allowAutomaticKeyVerification = false, + isPrimaryDevice = true ), callbacks = AdvancedPrivacySettingsCallbacks.Empty ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsState.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsState.kt index 063b44c358..84f5be4bb0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsState.kt @@ -8,7 +8,8 @@ data class AdvancedPrivacySettingsState( val showSealedSenderStatusIcon: Boolean, val allowSealedSenderFromAnyone: Boolean, val showProgressSpinner: Boolean, - val allowAutomaticKeyVerification: Boolean + val allowAutomaticKeyVerification: Boolean, + val isPrimaryDevice: Boolean ) enum class CensorshipCircumventionState(val available: Boolean) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt index 52334104e7..9c698496e2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/privacy/advanced/AdvancedPrivacySettingsViewModel.kt @@ -105,7 +105,8 @@ class AdvancedPrivacySettingsViewModel( AppDependencies.application ), showProgressSpinner = false, - allowAutomaticKeyVerification = SignalStore.settings.automaticVerificationEnabled + allowAutomaticKeyVerification = SignalStore.settings.automaticVerificationEnabled, + isPrimaryDevice = SignalStore.account.isPrimaryDevice ) }