diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index d5a1ed5765..54804792d3 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -57,6 +57,11 @@ object FeatureFlags { */ const val composeTabsTray = false + /** + * Enables compose on the top sites. + */ + const val composeTopSites = false + /** * Enables the save to PDF feature. */ 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 da3881f662..4b931584ea 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -58,6 +58,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = SharedPreferenceUpdater() } + requirePreference(R.string.pref_key_enable_compose_top_sites).apply { + isVisible = Config.channel.isNightlyOrDebug + isChecked = context.settings().enableComposeTopSites + onPreferenceChangeListener = SharedPreferenceUpdater() + } + // for performance reasons, this is only available in Nightly or Debug builds requirePreference(R.string.pref_key_custom_glean_server_url).apply { isVisible = Config.channel.isNightlyOrDebug && BuildConfig.GLEAN_CUSTOM_URL.isNullOrEmpty() 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 b21329781e..58a3e07a25 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -1736,6 +1736,14 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = FeatureFlags.composeTabsTray, ) + /** + * Indicates if the Compose Top Sites are enabled. + */ + var enableComposeTopSites by booleanPreference( + key = appContext.getPreferenceKey(R.string.pref_key_enable_compose_top_sites), + default = FeatureFlags.composeTopSites, + ) + /** * Adjust Activated User sent */ diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index a8125b6738..a3e07a1055 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -343,6 +343,7 @@ pref_key_custom_sponsored_stories_country pref_key_custom_sponsored_stories_city pref_key_shared_prefs_uuid + pref_key_enable_compose_top_sites pref_key_growth_set_as_default diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index 2b2302e521..1db7704d2b 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -64,6 +64,8 @@ Custom server changes will take effect on the next Firefox run. Enable Tabs Tray to Compose rewrite + + Enable Compose Top Sites Make inactive diff --git a/app/src/main/res/xml/secret_settings_preferences.xml b/app/src/main/res/xml/secret_settings_preferences.xml index 39e8fd4305..9c663362da 100644 --- a/app/src/main/res/xml/secret_settings_preferences.xml +++ b/app/src/main/res/xml/secret_settings_preferences.xml @@ -25,6 +25,11 @@ android:key="@string/pref_key_enable_tabs_tray_to_compose" android:title="@string/preferences_debug_settings_tabs_tray_to_compose" app:iconSpaceReserved="false" /> +