From cef6144944e642d2a8cdd8d0de7740b059dbe7c1 Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Wed, 28 Jul 2021 13:11:58 -0400 Subject: [PATCH] [fenix] Put the Start On home setting behind a feature flag. --- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 5 +++++ app/src/main/java/org/mozilla/fenix/HomeActivity.kt | 5 ++++- app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt | 4 +++- .../java/org/mozilla/fenix/settings/TabsSettingsFragment.kt | 6 ++++++ app/src/main/res/values/preference_keys.xml | 1 + app/src/main/res/xml/tabs_preferences.xml | 2 ++ 6 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index 11a563fc9b..fcaf347287 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -34,6 +34,11 @@ object FeatureFlags { */ val showHomeButtonFeature = Config.channel.isNightlyOrDebug + /** + * Enables the Start On Home feature in the settings page. + */ + val showStartOnHomeSettings = Config.channel.isNightlyOrDebug + /** * Enables the "recent" tabs feature in the home screen. */ diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 72e27d9929..eeac21c6d7 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -220,7 +220,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { shouldNavigateBrowserFragmentOnCouldStart(savedInstanceState) ) { navigateToBrowserOnColdStart() - } else { + } else if (FeatureFlags.showStartOnHomeSettings) { components.analytics.metrics.track(Event.StartOnHomeEnterHomeScreen) } @@ -974,6 +974,9 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { * links from an external apps should always opened in the [BrowserFragment]. */ fun shouldStartOnHome(intent: Intent? = this.intent): Boolean { + if (!FeatureFlags.showStartOnHomeSettings) { + return false + } return components.strictMode.resetAfter(StrictMode.allowThreadDiskReads()) { // We only want to open on home when users tap the app, // we want to ignore other cases when the app gets open by users clicking on links. diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index fa9d37170e..99ec21a679 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -461,7 +461,9 @@ class HomeFragment : Fragment() { } view.tab_button.setOnClickListener { - requireComponents.analytics.metrics.track(Event.StartOnHomeOpenTabsTray) + if (FeatureFlags.showStartOnHomeSettings) { + requireComponents.analytics.metrics.track(Event.StartOnHomeOpenTabsTray) + } openTabsTray() } 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 982b67e222..85473ae6f6 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/TabsSettingsFragment.kt @@ -6,7 +6,9 @@ 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.FeatureFlags import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components @@ -56,10 +58,14 @@ class TabsSettingsFragment : PreferenceFragmentCompat() { radioOneWeek = requirePreference(R.string.pref_key_close_tabs_after_one_week) radioOneMonth = requirePreference(R.string.pref_key_close_tabs_after_one_month) + startOnHomeRadioFourHours = requirePreference(R.string.pref_key_start_on_home_after_four_hours) startOnHomeRadioFourHours = requirePreference(R.string.pref_key_start_on_home_after_four_hours) startOnHomeRadioAlways = requirePreference(R.string.pref_key_start_on_home_always) startOnHomeRadioNever = requirePreference(R.string.pref_key_start_on_home_never) + requirePreference(R.string.pref_key_start_on_home_category).isVisible = + FeatureFlags.showStartOnHomeSettings + setupRadioGroups() } diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 5af7120ba0..dfdf49f03b 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -268,6 +268,7 @@ pref_key_start_on_home_after_four_hours pref_key_start_on_home_always pref_key_start_on_home_never + pref_key_start_on_home_category pref_key_camera_permissions_needed pref_key_return_to_browser diff --git a/app/src/main/res/xml/tabs_preferences.xml b/app/src/main/res/xml/tabs_preferences.xml index f0cab2e0b4..641ad7c2ad 100644 --- a/app/src/main/res/xml/tabs_preferences.xml +++ b/app/src/main/res/xml/tabs_preferences.xml @@ -50,6 +50,8 @@ android:layout="@layout/preference_cat_style" android:title="@string/preferences_start_on_home" app:allowDividerAbove="true" + app:isPreferenceVisible="false" + android:key="pref_key_start_on_home_category" app:iconSpaceReserved="false">