commit 000a7d3ce5ed6a9f9ee5e742f6d1f3315527e3ae parent 105624ee88b292a942ded7ac32f9e6e8110f0e63 Author: John Oberhauser <j.git-global@obez.io> Date: Mon, 22 Dec 2025 18:29:23 +0000 Bug 2006789 - Adding a secret setting for debugging the privacy notice banner on homepage r=android-reviewers,twhite Differential Revision: https://phabricator.services.mozilla.com/D277039 Diffstat:
6 files changed, 25 insertions(+), 2 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 @@ -445,6 +445,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = SharedPreferenceUpdater() } + requirePreference<SwitchPreference>(R.string.pref_key_terms_latest_date).apply { + isVisible = Config.channel.isNightlyOrDebug || Config.channel.isBeta + isChecked = context.settings().isTermsOfUsePublishedDebugDateEnabled + onPreferenceChangeListener = SharedPreferenceUpdater() + } + requirePreference<SwitchPreference>(R.string.pref_key_debug_terms_trigger_time).apply { isVisible = Config.channel.isNightlyOrDebug || Config.channel.isBeta isChecked = context.settings().isDebugTermsOfServiceTriggerTimeEnabled diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/termsofuse/store/PrivacyNoticeBannerRepository.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/termsofuse/store/PrivacyNoticeBannerRepository.kt @@ -33,8 +33,13 @@ class DefaultPrivacyNoticeBannerRepository( } override fun shouldShowPrivacyNoticeBanner(): Boolean { + val termsOfUseTime = if (settings.isTermsOfUsePublishedDebugDateEnabled) { + System.currentTimeMillis() + } else { + TOU_TIME_IN_MILLIS + } return settings.hasAcceptedTermsOfService && - settings.termsOfUseAcceptedTimeInMillis < TOU_TIME_IN_MILLIS && - settings.privacyNoticeBannerLastDisplayedTimeInMillis < TOU_TIME_IN_MILLIS + settings.termsOfUseAcceptedTimeInMillis < termsOfUseTime && + settings.privacyNoticeBannerLastDisplayedTimeInMillis < termsOfUseTime } } 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 @@ -600,6 +600,12 @@ class Settings( }, ) + var isTermsOfUsePublishedDebugDateEnabled by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_terms_latest_date), + default = false, + persistDefaultIfNotExists = true, + ) + var privacyNoticeBannerLastDisplayedTimeInMillis by longPreference( key = appContext.getPreferenceKey(R.string.pref_key_privacy_notice_banner_last_displayed_time), default = 0, 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 @@ -91,6 +91,7 @@ <string name="pref_key_terms_prompt_displayed_count" translatable="false">pref_key_terms_prompt_displayed_count</string> <string name="pref_key_terms_last_prompt_time" translatable="false">pref_key_terms_last_prompt_time</string> <string name="pref_key_terms_postponed" translatable="false">pref_key_terms_postponed</string> + <string name="pref_key_terms_latest_date" translatable="false">pref_key_terms_latest_date</string> <string name="pref_key_debug_terms_trigger_time" translatable="false">pref_key_debug_terms_trigger_time</string> <string name="pref_key_should_show_marketing_onboarding" translatable="false">pref_key_should_show_marketing_onboarding</string> <string name="pref_key_use_onboarding_redesign" translatable="false">pref_key_use_onboarding_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 @@ -132,6 +132,7 @@ <string name="preferences_terms_of_use_accepted" translatable="false">Terms of Use accepted</string> <string name="preferences_terms_of_use_debug_timer" translatable="false">30s ToU timer enabled</string> + <string name="preferences_terms_of_use_latest_update_date" translatable="false">Set latest ToU update date to now</string> <!-- Label for enabling LNA blocking --> <string name="preferences_debug_settings_enable_lna_blocking" translatable="false">Enable LNA request blocking</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 @@ -185,6 +185,10 @@ android:title="@string/preferences_terms_of_use_debug_timer" app:iconSpaceReserved="false" /> <SwitchPreference + android:key="@string/pref_key_terms_latest_date" + android:title="@string/preferences_terms_of_use_latest_update_date" + app:iconSpaceReserved="false" /> + <SwitchPreference android:key="@string/pref_key_enable_relay_email_masks" android:title="@string/preferences_enable_relay_email_masks" app:iconSpaceReserved="false" />