From 93247e0b2f5cfd466f0f1542eb78c93acca77a67 Mon Sep 17 00:00:00 2001 From: Mihai Branescu Date: Wed, 13 May 2020 17:48:02 +0300 Subject: [PATCH] For #9425 - SearchFragment now reacts to undo operation for base engines --- .../searchengine/CustomSearchEngineStore.kt | 2 +- .../searchengine/FenixSearchEngineProvider.kt | 4 ++-- .../org/mozilla/fenix/search/SearchFragment.kt | 14 +++++++------- .../searchengine/FenixSearchEngineProviderTest.kt | 5 +---- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/searchengine/CustomSearchEngineStore.kt b/app/src/main/java/org/mozilla/fenix/components/searchengine/CustomSearchEngineStore.kt index 555954082..ef0c840e5 100644 --- a/app/src/main/java/org/mozilla/fenix/components/searchengine/CustomSearchEngineStore.kt +++ b/app/src/main/java/org/mozilla/fenix/components/searchengine/CustomSearchEngineStore.kt @@ -124,6 +124,6 @@ object CustomSearchEngineStore { } } - const val PREF_KEY_CUSTOM_SEARCH_ENGINES = "pref_custom_search_engines" + private const val PREF_KEY_CUSTOM_SEARCH_ENGINES = "pref_custom_search_engines" const val PREF_FILE_SEARCH_ENGINES = "custom-search-engines" } diff --git a/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt b/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt index e8c68eb17..4775f9e71 100644 --- a/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt @@ -183,7 +183,7 @@ open class FenixSearchEngineProvider( } private fun prefs(context: Context) = context.getSharedPreferences( - PREF_FILE, + PREF_FILE_SEARCH_ENGINES, Context.MODE_PRIVATE ) @@ -229,7 +229,7 @@ open class FenixSearchEngineProvider( @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) companion object { val BUNDLED_SEARCH_ENGINES = listOf("reddit", "youtube") - const val PREF_FILE = "fenix-search-engine-provider" + const val PREF_FILE_SEARCH_ENGINES = "fenix-search-engine-provider" const val INSTALLED_ENGINES_KEY = "fenix-installed-search-engines" const val CURRENT_LOCALE_KEY = "fenix-current-locale" } diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt index c36e80d9f..2190be332 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt @@ -47,6 +47,7 @@ import org.mozilla.fenix.R import org.mozilla.fenix.components.StoreProvider import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.searchengine.CustomSearchEngineStore +import org.mozilla.fenix.components.searchengine.FenixSearchEngineProvider import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.getSpannable import org.mozilla.fenix.ext.hideToolbar @@ -130,7 +131,8 @@ class SearchFragment : Fragment(), UserInteractionHandler { awesomeBarView = AwesomeBarView(view.scrollable_area, searchInteractor, view.findViewById(R.id.awesomeBar)) - setShortcutsChangedListener() + setShortcutsChangedListener(CustomSearchEngineStore.PREF_FILE_SEARCH_ENGINES) + setShortcutsChangedListener(FenixSearchEngineProvider.PREF_FILE_SEARCH_ENGINES) view.scrollView.setOnScrollChangeListener { _: NestedScrollView, _: Int, _: Int, _: Int, _: Int -> @@ -168,14 +170,12 @@ class SearchFragment : Fragment(), UserInteractionHandler { return (speechIntent.resolveActivity(requireContext().packageManager) != null) } - private fun setShortcutsChangedListener() { + private fun setShortcutsChangedListener(preferenceFileName: String) { requireContext().getSharedPreferences( - CustomSearchEngineStore.PREF_FILE_SEARCH_ENGINES, + preferenceFileName, Context.MODE_PRIVATE - ).registerOnSharedPreferenceChangeListener(viewLifecycleOwner) { _, key -> - if (key == CustomSearchEngineStore.PREF_KEY_CUSTOM_SEARCH_ENGINES) { - awesomeBarView.update(searchStore.state) - } + ).registerOnSharedPreferenceChangeListener(viewLifecycleOwner) { _, _ -> + awesomeBarView.update(searchStore.state) } } diff --git a/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt b/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt index 41d4532b6..74327dafd 100644 --- a/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt @@ -3,13 +3,10 @@ package org.mozilla.fenix.components.searchengine import android.content.Context import io.mockk.every import io.mockk.mockk -import android.graphics.Bitmap import io.mockk.Runs import io.mockk.coEvery import io.mockk.coVerify -import io.mockk.every import io.mockk.just -import io.mockk.mockk import io.mockk.mockkObject import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.Deferred @@ -85,7 +82,7 @@ class FenixSearchEngineProviderTest { @Test fun `GIVEN sharedprefs contains installed engines WHEN installedSearchEngineIdentifiers THEN defaultEngines + customEngines ids are returned`() = runBlockingTest { - val sp = testContext.getSharedPreferences(FenixSearchEngineProvider.PREF_FILE, Context.MODE_PRIVATE) + val sp = testContext.getSharedPreferences(FenixSearchEngineProvider.PREF_FILE_SEARCH_ENGINES, Context.MODE_PRIVATE) sp.edit().putStringSet(fenixSearchEngineProvider.localeAwareInstalledEnginesKey(), persistedInstalledEngines).apply() val expectedStored = persistedInstalledEngines