diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index b1ccd04c6..b0a6d9cc6 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -21,6 +21,11 @@ object FeatureFlags { */ val syncedTabsInTabsTray = Config.channel.isNightlyOrDebug + /** + * Shows the grid view settings for the tabs tray. + */ + val showGridViewInTabsSettings = Config.channel.isNightlyOrDebug + /** * Enables downloads with external download managers. */ 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 e3fc88124..88e123291 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -25,6 +25,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.secret_settings_preferences, rootKey) + requirePreference(R.string.pref_key_show_grid_view_tabs_settings).apply { + isVisible = FeatureFlags.showGridViewInTabsSettings + isChecked = context.settings().showGridViewInTabsSettings + onPreferenceChangeListener = SharedPreferenceUpdater() + } + requirePreference(R.string.pref_key_synced_tabs_tabs_tray).apply { isVisible = FeatureFlags.syncedTabsInTabsTray isChecked = context.settings().syncedTabsInTabsTray diff --git a/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt index d31fc3412..b5b996499 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt @@ -6,10 +6,12 @@ package org.mozilla.fenix.settings import android.os.Bundle import android.view.View +import androidx.preference.PreferenceCategory import androidx.preference.PreferenceFragmentCompat import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.utils.view.addToRadioGroup @@ -49,6 +51,10 @@ class TabsSettingsFragment : PreferenceFragmentCompat() { radioOneMonth = requirePreference(R.string.pref_key_close_tabs_after_one_month) setupRadioGroups() + + requirePreference(R.string.pref_key_tab_view_category).apply { + isVisible = context.settings().showGridViewInTabsSettings + } } private fun setupRadioGroups() { 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 c1b7f4ae7..7f221c328 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -123,6 +123,12 @@ class Settings(private val appContext: Context) : PreferencesHolder { val canShowCfr: Boolean get() = (System.currentTimeMillis() - lastCfrShownTimeInMillis) > THREE_DAYS_MS + var showGridViewInTabsSettings by featureFlagPreference( + appContext.getPreferenceKey(R.string.pref_key_show_grid_view_tabs_settings), + default = Config.channel.isNightlyOrDebug, + featureFlag = FeatureFlags.showGridViewInTabsSettings + ) + var syncedTabsInTabsTray by featureFlagPreference( appContext.getPreferenceKey(R.string.pref_key_synced_tabs_tabs_tray), default = false, diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 4f8d45e6e..b035a92f5 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -220,6 +220,7 @@ pref_key_show_collections_home + pref_key_tab_view_category pref_key_tab_view_list pref_key_tab_view_grid pref_key_tabs @@ -227,6 +228,7 @@ pref_key_close_tabs_after_one_day pref_key_close_tabs_after_one_week pref_key_close_tabs_after_one_month + pref_key_show_grid_view_tabs_settings pref_key_camera_permissions_needed diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index 9c289c1fc..6acb14828 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -32,6 +32,8 @@ Secret Settings + + Show Grid View in Tabs Settings Show Synced Tabs in the tabs tray diff --git a/app/src/main/res/xml/secret_settings_preferences.xml b/app/src/main/res/xml/secret_settings_preferences.xml index 7f9722266..a0c531b5b 100644 --- a/app/src/main/res/xml/secret_settings_preferences.xml +++ b/app/src/main/res/xml/secret_settings_preferences.xml @@ -4,6 +4,11 @@ - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + + app:iconSpaceReserved="false" + app:isPreferenceVisible="false">