From f8edd00fe1b36cda369a41805c688da169d11663 Mon Sep 17 00:00:00 2001 From: sarah541 Date: Fri, 26 Jan 2024 13:50:41 -0500 Subject: [PATCH] Bug 1868539 - Add method of changing remote server url --- app/src/main/java/org/mozilla/fenix/components/Core.kt | 7 +++++++ .../org/mozilla/fenix/settings/SecretSettingsFragment.kt | 9 ++++++++- app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 5 +++++ app/src/main/res/values/preference_keys.xml | 3 +++ app/src/main/res/values/static_strings.xml | 2 ++ app/src/main/res/xml/secret_settings_preferences.xml | 5 +++++ 6 files changed, 30 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/Core.kt b/app/src/main/java/org/mozilla/fenix/components/Core.kt index 22447bbe2..65778d279 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -329,6 +329,11 @@ class Core( rootStorageDirectory = context.filesDir, readJson = readJson, collectionName = COLLECTION_NAME, + serverUrl = if (context.settings().useProductionRemoteSettingsServer) { + REMOTE_PROD_ENDPOINT_URL + } else { + REMOTE_STAGE_ENDPOINT_URL + }, ).updateProviderList() } // Install the "ads" WebExtension to get the links in an partner page. @@ -623,5 +628,7 @@ class Core( // collection name to fetch from server for SERP telemetry const val COLLECTION_NAME = "search-telemetry-v2" + internal const val REMOTE_PROD_ENDPOINT_URL = "https://firefox.settings.services.mozilla.com" + internal const val REMOTE_STAGE_ENDPOINT_URL = "https://firefox.settings.services.allizom.org" } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt index 4f5c99085..2d91285fe 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -88,7 +88,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = object : Preference.OnPreferenceChangeListener { override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean { val newBooleanValue = newValue as? Boolean ?: return false - val ingestionScheduler = requireContext().components.fxSuggest.ingestionScheduler + val ingestionScheduler = + requireContext().components.fxSuggest.ingestionScheduler if (newBooleanValue) { ingestionScheduler.startPeriodicIngestion() } else { @@ -129,6 +130,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { requirePreference(R.string.pref_key_custom_sponsored_stories_parameters).apply { isVisible = Config.channel.isNightlyOrDebug } + + requirePreference(R.string.pref_key_remote_server_prod).apply { + isVisible = true + isChecked = context.settings().useProductionRemoteSettingsServer + onPreferenceChangeListener = SharedPreferenceUpdater() + } } override fun onPreferenceTreeClick(preference: Preference): Boolean { diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 8a8bbd706..7b8f0343e 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -767,6 +767,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { true, ) + val useProductionRemoteSettingsServer by booleanPreference( + key = appContext.getPreferenceKey(R.string.pref_key_remote_server_prod), + default = true, + ) + val enabledTotalCookieProtection: Boolean get() = mr2022Sections[Mr2022Section.TCP_FEATURE] == true diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 59e41aebe..6c1615556 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -145,6 +145,9 @@ pref_key_privacy_pop_window + + pref_key_remote_server_prod + pref_key_light_theme pref_key_dark_theme diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index ffb95ee4e..6432c5bed 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -34,6 +34,8 @@ Secret Settings Secret Debug Info + + Use Remote Settings Production server \n(Staging will be used when disabled) \n(requires restart) Use third party CA certificates diff --git a/app/src/main/res/xml/secret_settings_preferences.xml b/app/src/main/res/xml/secret_settings_preferences.xml index 48148593f..0a74701ce 100644 --- a/app/src/main/res/xml/secret_settings_preferences.xml +++ b/app/src/main/res/xml/secret_settings_preferences.xml @@ -61,4 +61,9 @@ app:iconSpaceReserved="false" android:title="@string/preferences_debug_settings_custom_sponsored_stories_parameters" /> +