tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 8c541f7253c0a4f15225401920e02a7822483120
parent ff7da48b891cb7cc533d9df3b0bba2c136bce89a
Author: Gabriel Luong <gabriel.luong@gmail.com>
Date:   Mon, 10 Nov 2025 23:35:49 +0000

Bug 1999116 - Add a Feature Flag and Secret Setting for enabling the Mozilla Ads Client r=android-reviewers,devota

Differential Revision: https://phabricator.services.mozilla.com/D272079

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 5+++++
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt | 6+++++-
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 8++++++++
Mmobile/android/fenix/app/src/main/res/values/preference_keys.xml | 1+
Mmobile/android/fenix/app/src/main/res/values/static_strings.xml | 2++
Mmobile/android/fenix/app/src/main/res/xml/secret_settings_preferences.xml | 5+++++
6 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -59,6 +59,11 @@ object FeatureFlags { const val PRIVATE_BROWSING_MODE_REDESIGN = false /** + * Enables the Mozilla Ads Client. + */ + const val MOZILLA_ADS_CLIENT_ENABLED = false + + /** * Enables the app icon selection feature. * The implementation of the feature is based on changing activity aliases, and on versions of Android older than 10 * that also leads to removal of created shortcuts. We need to work out a good UX to avoid confusion and data loss. 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 @@ -169,6 +169,11 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = SharedPreferenceUpdater() } + requirePreference<SwitchPreference>(R.string.pref_key_enable_mozilla_ads_client).apply { + isChecked = context.settings().enableMozillaAdsClient + onPreferenceChangeListener = SharedPreferenceUpdater() + } + requirePreference<SwitchPreference>(R.string.pref_key_enable_discover_more_stories).apply { isVisible = Config.channel.isNightlyOrDebug isChecked = context.settings().enableDiscoverMoreStories @@ -182,7 +187,6 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } requirePreference<SwitchPreference>(R.string.pref_key_enable_unified_trust_panel).apply { - isVisible = true isChecked = context.settings().enableUnifiedTrustPanel onPreferenceChangeListener = SharedPreferenceUpdater() } 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 @@ -2268,6 +2268,14 @@ class Settings(private val appContext: Context) : PreferencesHolder { ) /** + * Indicates if the Mozilla Ads Client is enabled. + */ + var enableMozillaAdsClient by booleanPreference( + key = appContext.getPreferenceKey(R.string.pref_key_enable_mozilla_ads_client), + default = FeatureFlags.MOZILLA_ADS_CLIENT_ENABLED, + ) + + /** * Indicates if the Unified Trust Panel is enabled. */ var enableUnifiedTrustPanel by lazyFeatureFlagPreference( 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 @@ -434,6 +434,7 @@ <string name="pref_key_enable_homepage_as_new_tab" translatable="false">pref_key_enable_homepage_as_new_tab</string> <string name="pref_key_enable_discover_more_stories" translatable="false">pref_key_enable_discover_more_stories</string> <string name="pref_key_enable_private_browsing_mode_redesign" translatable="false">pref_key_enable_private_browsing_mode_redesign</string> + <string name="pref_key_enable_mozilla_ads_client" translatable="false">pref_key_enable_mozilla_ads_client</string> <string name="pref_key_enable_unified_trust_panel" translatable="false">pref_key_enable_unified_trust_panel</string> <string name="pref_key_enable_composable_toolbar" translatable="false">pref_key_enable_composable_toolbar</string>" <string name="pref_key_enable_toolbar_redesign" translatable="false">pref_key_enable_toolbar_redesign</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 @@ -73,6 +73,8 @@ <string name="preferences_debug_settings_compose_logins" translatable="false">Enable Compose Logins</string> <!-- Label for enabling Homepage as a New Tab --> <string name="preferences_debug_settings_homepage_as_new_tab" translatable="false">Enable Homepage as a New Tab</string> + <!-- Label for enabling Mozilla Ads Client --> + <string name="preferences_debug_settings_mozilla_ads_client" translatable="false">Enable Mozilla Ads Client</string> <!-- Label for enabling Discover more stories --> <string name="preferences_debug_settings_discover_more_stories" translatable="false">Enable Discover More Stories</string> <!-- Label for enabling Private Browsing Mode redesign --> 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 @@ -37,6 +37,11 @@ app:iconSpaceReserved="false" /> <SwitchPreference android:defaultValue="false" + android:key="@string/pref_key_enable_mozilla_ads_client" + android:title="@string/preferences_debug_settings_mozilla_ads_client" + app:iconSpaceReserved="false" /> + <SwitchPreference + android:defaultValue="false" android:key="@string/pref_key_enable_discover_more_stories" android:title="@string/preferences_debug_settings_discover_more_stories" app:iconSpaceReserved="false" />