From b4725429e81652ddfc36685c3a52b67852c93911 Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Wed, 16 Mar 2022 22:44:23 -0400 Subject: [PATCH] For #24334 - Add FeatureFlag for Unified Search feature --- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 5 +++++ .../java/org/mozilla/fenix/search/toolbar/ToolbarView.kt | 4 ++-- .../org/mozilla/fenix/settings/SecretSettingsFragment.kt | 6 ++++++ app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 9 +++++++++ app/src/main/res/values/preference_keys.xml | 1 + app/src/main/res/values/static_strings.xml | 2 ++ app/src/main/res/xml/secret_settings_preferences.xml | 5 +++++ 7 files changed, 30 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 75460e49c..eeae1864e 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -104,4 +104,9 @@ object FeatureFlags { * Enables the Task Continuity enhancements. */ val taskContinuityFeature = Config.channel.isDebug + + /** + * Enables the Unified Search feature. + */ + val unifiedSearchFeature = Config.channel.isNightlyOrDebug } diff --git a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt index df3750390..b29ed9aee 100644 --- a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt @@ -53,7 +53,7 @@ interface ToolbarInteractor { @Suppress("LongParameterList") class ToolbarView( private val context: Context, - settings: Settings, + private val settings: Settings, private val interactor: ToolbarInteractor, private val historyStorage: HistoryStorage?, private val isPrivate: Boolean, @@ -152,7 +152,7 @@ class ToolbarView( val searchEngine = searchState.searchEngineSource.searchEngine - if (searchEngine != null) { + if (!settings.showUnifiedSearchFeature && searchEngine != null) { val iconSize = context.resources.getDimensionPixelSize(R.dimen.preference_icon_drawable_size) 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 4394bc40c..945d4be39 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -59,5 +59,11 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { isChecked = context.settings().enableTaskContinuityEnhancements onPreferenceChangeListener = SharedPreferenceUpdater() } + + requirePreference(R.string.pref_key_show_unified_search).apply { + isVisible = FeatureFlags.unifiedSearchFeature + isChecked = context.settings().showUnifiedSearchFeature + onPreferenceChangeListener = SharedPreferenceUpdater() + } } } 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 81f8647c7..8315e7f81 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -1290,6 +1290,15 @@ class Settings(private val appContext: Context) : PreferencesHolder { featureFlag = FeatureFlags.taskContinuityFeature, ) + /** + * Indicates if the Unified Search feature should be visible. + */ + var showUnifiedSearchFeature by featureFlagPreference( + key = appContext.getPreferenceKey(R.string.pref_key_show_unified_search), + default = false, + featureFlag = FeatureFlags.unifiedSearchFeature + ) + /** * Blocklist used to filter items from the home screen that have previously been removed. */ diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 547425010..bf2ea31a7 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -282,4 +282,5 @@ pref_key_nimbus_use_preview pref_key_history_metadata_feature pref_key_pocket_homescreen_recommendations + pref_key_show_unified_search diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index 95f7e6eae..77f265585 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -45,6 +45,8 @@ Use Nimbus Preview Collection (requires restart) Enable Task Continuity + + Enable Unified Search 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 af9cbcb61..b9ade62bb 100644 --- a/app/src/main/res/xml/secret_settings_preferences.xml +++ b/app/src/main/res/xml/secret_settings_preferences.xml @@ -30,4 +30,9 @@ android:key="@string/pref_key_enable_task_continuity" android:title="@string/preferences_debug_settings_task_continuity" app:iconSpaceReserved="false" /> +