mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-11 13:11:01 +00:00
Bug 1848377 - Add secret setting to control the visibility of the Shopping feature
This commit is contained in:
parent
4c52f74add
commit
d0f75706c0
@ -50,6 +50,7 @@ import org.mozilla.fenix.ext.settings
|
||||
import org.mozilla.fenix.nimbus.FxNimbus
|
||||
import org.mozilla.fenix.settings.quicksettings.protections.cookiebanners.dialog.CookieBannerReEngagementDialogUtils
|
||||
import org.mozilla.fenix.settings.quicksettings.protections.cookiebanners.getCookieBannerUIMode
|
||||
import org.mozilla.fenix.shopping.DefaultShoppingExperienceFeature
|
||||
import org.mozilla.fenix.shopping.ReviewQualityCheckFeature
|
||||
import org.mozilla.fenix.shortcut.PwaOnboardingObserver
|
||||
import org.mozilla.fenix.theme.ThemeManager
|
||||
@ -226,6 +227,9 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
|
||||
reviewQualityCheckFeature.set(
|
||||
feature = ReviewQualityCheckFeature(
|
||||
browserStore = context.components.core.store,
|
||||
shoppingExperienceFeature = DefaultShoppingExperienceFeature(
|
||||
settings = requireContext().settings(),
|
||||
),
|
||||
onAvailabilityChange = { reviewQualityCheckAvailable = it },
|
||||
),
|
||||
owner = this,
|
||||
|
@ -64,6 +64,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() {
|
||||
onPreferenceChangeListener = SharedPreferenceUpdater()
|
||||
}
|
||||
|
||||
requirePreference<SwitchPreference>(R.string.pref_key_enable_shopping_experience).apply {
|
||||
isVisible = Config.channel.isNightlyOrDebug
|
||||
isChecked = context.settings().enableShoppingExperience
|
||||
onPreferenceChangeListener = SharedPreferenceUpdater()
|
||||
}
|
||||
|
||||
// for performance reasons, this is only available in Nightly or Debug builds
|
||||
requirePreference<EditTextPreference>(R.string.pref_key_custom_glean_server_url).apply {
|
||||
isVisible = Config.channel.isNightlyOrDebug && BuildConfig.GLEAN_CUSTOM_URL.isNullOrEmpty()
|
||||
|
@ -25,7 +25,7 @@ import mozilla.components.support.base.feature.LifecycleAwareFeature
|
||||
*/
|
||||
class ReviewQualityCheckFeature(
|
||||
private val browserStore: BrowserStore,
|
||||
private val shoppingExperienceFeature: ShoppingExperienceFeature = ShoppingExperienceFeature(),
|
||||
private val shoppingExperienceFeature: ShoppingExperienceFeature,
|
||||
private val onAvailabilityChange: (isAvailable: Boolean) -> Unit,
|
||||
) : LifecycleAwareFeature {
|
||||
private var scope: CoroutineScope? = null
|
||||
|
@ -4,16 +4,28 @@
|
||||
|
||||
package org.mozilla.fenix.shopping
|
||||
|
||||
import org.mozilla.fenix.nimbus.FxNimbus
|
||||
import org.mozilla.fenix.utils.Settings
|
||||
|
||||
/**
|
||||
* An abstraction for shopping experience feature flag.
|
||||
*/
|
||||
class ShoppingExperienceFeature {
|
||||
interface ShoppingExperienceFeature {
|
||||
|
||||
/**
|
||||
* Returns true if the shopping experience feature is enabled.
|
||||
*/
|
||||
val isEnabled
|
||||
get() = FxNimbus.features.shoppingExperience.value().enabled
|
||||
val isEnabled: Boolean
|
||||
}
|
||||
|
||||
/**
|
||||
* The default implementation of [ShoppingExperienceFeature].
|
||||
*
|
||||
* @property settings Used to check if the feature is enabled.
|
||||
*/
|
||||
class DefaultShoppingExperienceFeature(
|
||||
private val settings: Settings,
|
||||
) : ShoppingExperienceFeature {
|
||||
|
||||
override val isEnabled
|
||||
get() = settings.enableShoppingExperience
|
||||
}
|
||||
|
@ -1789,6 +1789,14 @@ class Settings(private val appContext: Context) : PreferencesHolder {
|
||||
default = FeatureFlags.composeTopSites,
|
||||
)
|
||||
|
||||
/**
|
||||
* Indicates if the shopping experience feature is enabled.
|
||||
*/
|
||||
val enableShoppingExperience by booleanPreference(
|
||||
key = appContext.getPreferenceKey(R.string.pref_key_enable_shopping_experience),
|
||||
default = FxNimbus.features.shoppingExperience.value().enabled,
|
||||
)
|
||||
|
||||
/**
|
||||
* Adjust Activated User sent
|
||||
*/
|
||||
|
@ -350,6 +350,7 @@
|
||||
<string name="pref_key_custom_sponsored_stories_country" translatable="false">pref_key_custom_sponsored_stories_country</string>
|
||||
<string name="pref_key_custom_sponsored_stories_city" translatable="false">pref_key_custom_sponsored_stories_city</string>
|
||||
<string name="pref_key_enable_compose_top_sites" translatable="false">pref_key_enable_compose_top_sites</string>
|
||||
<string name="pref_key_enable_shopping_experience" translatable="false">pref_key_enable_shopping_experience</string>
|
||||
|
||||
<!-- Growth Data -->
|
||||
<string name="pref_key_growth_set_as_default" translatable="false">pref_key_growth_set_as_default</string>
|
||||
|
@ -66,6 +66,8 @@
|
||||
<string name="preferences_debug_settings_tabs_tray_to_compose" translatable="false">Enable Tabs Tray to Compose rewrite</string>
|
||||
<!-- Label for enabling the Compose Top Sites -->
|
||||
<string name="preferences_debug_settings_compose_top_sites" translatable="false">Enable Compose Top Sites</string>
|
||||
<!-- Label for enabling the shopping experience -->
|
||||
<string name="preferences_debug_settings_shopping_experience" translatable="false">Enable Shopping Experience</string>
|
||||
|
||||
<!-- A secret menu option in the tabs tray for making a tab inactive for testing. -->
|
||||
<string name="inactive_tabs_menu_item">Make inactive</string>
|
||||
|
@ -30,6 +30,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_enable_shopping_experience"
|
||||
android:title="@string/preferences_debug_settings_shopping_experience"
|
||||
app:iconSpaceReserved="false" />
|
||||
<EditTextPreference
|
||||
android:key="@string/pref_key_custom_glean_server_url"
|
||||
android:title="@string/preferences_debug_settings_custom_glean_server_url"
|
||||
|
Loading…
Reference in New Issue
Block a user