Bug 1864759 - Add secret setting and feature flag for toolbar redesign

fenix/122.0
Harrison Oglesby 6 months ago committed by mergify[bot]
parent 96022dad35
commit 74ca206ed5

@ -78,4 +78,14 @@ object FeatureFlags {
* Enable Meta attribution.
*/
val metaAttributionEnabled = Config.channel.isNightlyOrDebug
/**
* Enable Toolbar Redesign components and behaviors ready for Nightly.
*/
val completeToolbarRedesignEnabled = Config.channel.isNightlyOrDebug
/**
* Enable Toolbar Redesign partial components and behaviors.
*/
val incompleteToolbarRedesignEnabled = Config.channel.isDebug
}

@ -0,0 +1,42 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.components.toolbar
import org.mozilla.fenix.utils.Settings
/**
* An abstraction for the Toolbar Redesign feature.
*/
interface RedesignToolbarFeature {
/**
* Returns true if the toolbar redesign feature is enabled.
*/
val isEnabled: Boolean
}
/**
* The complete portions of the redesigned Toolbar ready for Nightly.
*
*/
class CompleteRedesignToolbarFeature(
private val settings: Settings,
) : RedesignToolbarFeature {
override val isEnabled: Boolean
get() = settings.enableRedesignToolbar
}
/**
* The incomplete portions of the redesigned Toolbar still in progress.
*
*/
class IncompleteRedesignToolbarFeature(
private val settings: Settings,
) : RedesignToolbarFeature {
override val isEnabled: Boolean
get() = settings.enableIncompleteToolbarRedesign
}

@ -48,6 +48,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() {
onPreferenceChangeListener = SharedPreferenceUpdater()
}
requirePreference<SwitchPreference>(R.string.pref_key_toolbar_use_redesign_incomplete).apply {
isVisible = Config.channel.isDebug
isChecked = context.settings().enableIncompleteToolbarRedesign
onPreferenceChangeListener = SharedPreferenceUpdater()
}
requirePreference<SwitchPreference>(R.string.pref_key_enable_tabs_tray_to_compose).apply {
isVisible = true
isChecked = context.settings().enableTabsTrayToCompose

@ -1942,4 +1942,24 @@ class Settings(private val appContext: Context) : PreferencesHolder {
default = { enableFxSuggest },
featureFlag = FeatureFlags.fxSuggest,
)
/**
* Indicates if the user is shown new redesigned Toolbar UI.
*/
var enableRedesignToolbar by lazyFeatureFlagPreference(
key = appContext.getPreferenceKey(R.string.pref_key_toolbar_use_redesign),
default = { false },
featureFlag = FeatureFlags.completeToolbarRedesignEnabled,
)
/**
* Indicates if the user is shown incomplete new redesigned Toolbar UI components and behaviors.
*
* DEV ONLY
*/
var enableIncompleteToolbarRedesign by lazyFeatureFlagPreference(
key = appContext.getPreferenceKey(R.string.pref_key_toolbar_use_redesign_incomplete),
default = { false },
featureFlag = FeatureFlags.incompleteToolbarRedesignEnabled,
)
}

@ -138,6 +138,10 @@
<string name="pref_key_toolbar_top" translatable="false">pref_key_toolbar_top</string>
<string name="pref_key_toolbar_bottom" translatable="false">pref_key_toolbar_bottom</string>
<!-- Toolbar Redesign -->
<string name="pref_key_toolbar_use_redesign" translatable="false">pref_key_toolbar_use_redesign</string>
<string name="pref_key_toolbar_use_redesign_incomplete" translatable="false">pref_key_toolbar_use_redesign_incomplete</string>
<!-- Privacy Pop Window -->
<string name="pref_key_privacy_pop_window" translatable="false">pref_key_privacy_pop_window</string>

@ -70,6 +70,8 @@
<string name="preferences_debug_settings_translations" translatable="false">Enable Firefox Translations</string>
<!-- Label for enabling Firefox Suggest -->
<string name="preferences_debug_settings_fxsuggest" translatable="false">Enable Firefox Suggest</string>
<!-- Label for enabling Toolbar Redesign incomplete portions -->
<string name="preferences_debug_settings_toolbar_redesign" translatable="false">Enable Toolbar Redesign incomplete portions</string>
<!-- Label for enabling Felt Privacy -->
<string name="preferences_debug_felt_privacy" translatable="false">Enable Felt Privacy</string>

@ -25,6 +25,11 @@
android:key="@string/pref_key_enable_compose_top_sites"
android:title="@string/preferences_debug_settings_compose_top_sites"
app:iconSpaceReserved="false" />
<SwitchPreference
android:defaultValue="false"
android:key="@string/pref_key_toolbar_use_redesign_incomplete"
android:title="@string/preferences_debug_settings_toolbar_redesign"
app:iconSpaceReserved="false" />
<SwitchPreference
android:defaultValue="false"
android:key="@string/pref_key_enable_translations"

Loading…
Cancel
Save