commit d915ceffa193657cb035ed140c6f3de567cc47af parent c16ff93389e4cbc7c0ed6528c55de344d3e052b9 Author: gela <gela.malekpour@gmail.com> Date: Thu, 30 Oct 2025 18:13:18 +0000 Bug 1997136 - Add a secret setting toggle for relay r=android-reviewers,mavduevskiy Differential Revision: https://phabricator.services.mozilla.com/D270596 Diffstat:
5 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -348,6 +348,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { isChecked = context.settings().isAppZygoteEnabled onPreferenceChangeListener = SharedPreferenceUpdater() } + + requirePreference<SwitchPreference>(R.string.pref_key_enable_relay_email_masks).apply { + isVisible = Config.channel.isDebug + isChecked = context.settings().isRelayFeatureEnabled + onPreferenceChangeListener = SharedPreferenceUpdater() + } } override fun onPreferenceTreeClick(preference: Preference): Boolean { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -2391,6 +2391,15 @@ class Settings(private val appContext: Context) : PreferencesHolder { ) /** + * Indicates whether Relay enabled or not. + */ + var isRelayFeatureEnabled by lazyFeatureFlagPreference( + key = appContext.getPreferenceKey(R.string.pref_key_enable_relay_email_masks), + featureFlag = true, + default = { FxNimbus.features.relayEmailMasks.value().enabled }, + ) + + /** * Indicates if the feature to close synced tabs is enabled. */ val enableCloseSyncedTabs: Boolean diff --git a/mobile/android/fenix/app/src/main/res/values/preference_keys.xml b/mobile/android/fenix/app/src/main/res/values/preference_keys.xml @@ -94,6 +94,7 @@ <string name="pref_key_use_onboarding_redesign" translatable="false">pref_key_use_onboarding_redesign</string> <string name="pref_key_crash_pull_never_show_again" translatable="false">pref_key_crash_pull_never_show_again</string> <string name="pref_key_crash_pull_dont_show_before" translatable="false">pref_key_crash_pull_dont_show_before</string> + <string name="pref_key_enable_relay_email_masks" translatable="false">pref_key_enable_relay_email_masks</string> <!-- Data Choices --> <string name="pref_key_telemetry" translatable="false">pref_key_telemetry</string> diff --git a/mobile/android/fenix/app/src/main/res/values/static_strings.xml b/mobile/android/fenix/app/src/main/res/values/static_strings.xml @@ -260,6 +260,9 @@ <!-- Subtitle warning text for crash button --> <string name="crash_debug_startup_crash_warning">This will start the startup crash activity in a new process and terminate the current process.</string> + <!-- Label for enabling Relay email masks --> + <string name="preferences_enable_relay_email_masks">Enable Relay email masks</string> + <!-- Settings Search Strings --> <!-- Title of Settings Search --> <string name="settings_search_title">Settings Search</string> diff --git a/mobile/android/fenix/app/src/main/res/xml/secret_settings_preferences.xml b/mobile/android/fenix/app/src/main/res/xml/secret_settings_preferences.xml @@ -148,4 +148,8 @@ android:key="@string/pref_key_debug_terms_trigger_time" android:title="@string/preferences_terms_of_use_debug_timer" app:iconSpaceReserved="false" /> + <SwitchPreference + android:key="@string/pref_key_enable_relay_email_masks" + android:title="@string/preferences_enable_relay_email_masks" + app:iconSpaceReserved="false" /> </PreferenceScreen>