From f9b2d6599328623cc8f1f87f90f8fbd2a5fca8cc Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Wed, 9 Sep 2020 20:45:44 -0700 Subject: [PATCH] For #5745 - Create preference to disable domain autocompletion --- .../mozilla/fenix/search/toolbar/ToolbarView.kt | 16 ++++++++++------ .../settings/search/SearchEngineFragment.kt | 6 ++++++ .../java/org/mozilla/fenix/utils/Settings.kt | 5 +++++ app/src/main/res/values/preference_keys.xml | 1 + app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/search_preferences.xml | 4 ++++ 6 files changed, 28 insertions(+), 6 deletions(-) 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 79f11acf1..037c08708 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 @@ -19,6 +19,7 @@ import mozilla.components.support.ktx.android.content.getColorFromAttr import mozilla.components.support.ktx.android.content.res.resolveAttribute import mozilla.components.support.ktx.android.view.hideKeyboard import org.mozilla.fenix.R +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.search.SearchFragmentState /** @@ -110,12 +111,15 @@ class ToolbarView( } val engineForSpeculativeConnects = if (!isPrivate) engine else null - ToolbarAutocompleteFeature( - view, - engineForSpeculativeConnects - ).apply { - addDomainProvider(ShippedDomainsProvider().also { it.initialize(view.context) }) - historyStorage?.also(::addHistoryStorageProvider) + + if (context.settings().shouldAutocompleteInAwesomebar) { + ToolbarAutocompleteFeature( + view, + engineForSpeculativeConnects + ).apply { + addDomainProvider(ShippedDomainsProvider().also { it.initialize(view.context) }) + historyStorage?.also(::addHistoryStorageProvider) + } } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt index 800bf05bc..1c69aba76 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt @@ -32,6 +32,11 @@ class SearchEngineFragment : PreferenceFragmentCompat() { isChecked = context.settings().shouldShowSearchSuggestions } + val autocompleteURLsPreference = + requirePreference(R.string.pref_key_enable_autocomplete_urls).apply { + isChecked = context.settings().shouldAutocompleteInAwesomebar + } + val searchSuggestionsInPrivatePreference = requirePreference(R.string.pref_key_show_search_suggestions_in_private).apply { isChecked = context.settings().shouldShowSearchSuggestionsInPrivate @@ -73,6 +78,7 @@ class SearchEngineFragment : PreferenceFragmentCompat() { showClipboardSuggestions.onPreferenceChangeListener = SharedPreferenceUpdater() searchSuggestionsInPrivatePreference.onPreferenceChangeListener = SharedPreferenceUpdater() showVoiceSearchPreference.onPreferenceChangeListener = SharedPreferenceUpdater() + autocompleteURLsPreference.onPreferenceChangeListener = SharedPreferenceUpdater() searchSuggestionsPreference.setOnPreferenceClickListener { if (!searchSuggestionsPreference.isChecked) { 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 4c2e0874b..d1bade330 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -615,6 +615,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = true ) + val shouldAutocompleteInAwesomebar by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_enable_autocomplete_urls), + default = true + ) + var defaultTopSitesAdded by booleanPreference( appContext.getPreferenceKey(R.string.default_top_sites_added), default = false diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 98aa99d53..8e6b1dcc6 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -97,6 +97,7 @@ pref_key_show_search_suggestions_in_private pref_key_show_search_suggestions_in_privateonboarding pref_key_show_voice_search + pref_key_enable_domain_autocomplete pref_key_optimize diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index abd5168b8..3be52909f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -322,6 +322,8 @@ Search bookmarks Account settings + + Autocomplete URLs Open links in apps diff --git a/app/src/main/res/xml/search_preferences.xml b/app/src/main/res/xml/search_preferences.xml index d892037e0..9d5cc495d 100644 --- a/app/src/main/res/xml/search_preferences.xml +++ b/app/src/main/res/xml/search_preferences.xml @@ -28,6 +28,10 @@ android:defaultValue="true" android:key="@string/pref_key_show_search_engine_shortcuts" android:title="@string/preferences_show_search_engines" /> +