From 051ae9f5842438ebb7b291927006fcb5920e936c Mon Sep 17 00:00:00 2001 From: Colin Lee Date: Wed, 21 Aug 2019 13:14:59 -0500 Subject: [PATCH] For #3869: Switch to A-C SearchLocalizationProvider (#4858) * For #3869: Switch to A-C SearchLocalizationProvider * Fix test --- .../org/mozilla/fenix/components/Search.kt | 27 +++++-------------- .../components/metrics/PerformedSearchTest.kt | 12 ++++----- 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/Search.kt b/app/src/main/java/org/mozilla/fenix/components/Search.kt index d0640f676..a050e5225 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Search.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Search.kt @@ -10,26 +10,9 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import mozilla.components.browser.search.SearchEngineManager import mozilla.components.browser.search.provider.AssetsSearchEngineProvider -import mozilla.components.browser.search.provider.localization.SearchLocalizationProvider +import mozilla.components.browser.search.provider.localization.LocaleSearchLocalizationProvider import org.mozilla.fenix.test.Mockable import org.mozilla.fenix.utils.Settings -import java.util.Locale - -// Create our own SearchLocalizationProivder that sets the region based on the country -// This is a temporary fix until we have a localization provider that can look up the users -// issue -// https://github.com/mozilla-mobile/fenix/issues/3869 -// https://github.com/mozilla-mobile/android-components/issues/3637 -class FenixLocaleSearchLocalizationProvider : SearchLocalizationProvider() { - override val language: String - get() = Locale.getDefault().language - - override val country: String - get() = Locale.getDefault().country - - override val region: String - get() = country -} /** * Component group for all search engine integration related functionality. @@ -41,9 +24,11 @@ class Search(private val context: Context) { * This component provides access to a centralized registry of search engines. */ val searchEngineManager by lazy { - SearchEngineManager(coroutineContext = IO, providers = listOf( - AssetsSearchEngineProvider(FenixLocaleSearchLocalizationProvider()) - )).apply { + SearchEngineManager( + coroutineContext = IO, providers = listOf( + AssetsSearchEngineProvider(LocaleSearchLocalizationProvider()) + ) + ).apply { registerForLocaleUpdates(context) GlobalScope.launch { loadAsync(context).await() diff --git a/app/src/test/java/org/mozilla/fenix/components/metrics/PerformedSearchTest.kt b/app/src/test/java/org/mozilla/fenix/components/metrics/PerformedSearchTest.kt index e805e8de2..238ea8197 100644 --- a/app/src/test/java/org/mozilla/fenix/components/metrics/PerformedSearchTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/metrics/PerformedSearchTest.kt @@ -8,16 +8,16 @@ import kotlinx.coroutines.ObsoleteCoroutinesApi import mozilla.components.browser.search.SearchEngine import mozilla.components.browser.search.SearchEngineManager import mozilla.components.browser.search.provider.AssetsSearchEngineProvider +import mozilla.components.browser.search.provider.localization.LocaleSearchLocalizationProvider import mozilla.components.support.test.robolectric.testContext -import org.junit.Before -import org.mozilla.fenix.components.metrics.Event.PerformedSearch -import org.mozilla.fenix.components.metrics.Event.PerformedSearch.EngineSource -import org.mozilla.fenix.components.metrics.Event.PerformedSearch.EventSource import org.junit.Assert.assertTrue +import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mozilla.fenix.TestApplication -import org.mozilla.fenix.components.FenixLocaleSearchLocalizationProvider +import org.mozilla.fenix.components.metrics.Event.PerformedSearch +import org.mozilla.fenix.components.metrics.Event.PerformedSearch.EngineSource +import org.mozilla.fenix.components.metrics.Event.PerformedSearch.EventSource import org.robolectric.RobolectricTestRunner import org.robolectric.annotation.Config @@ -49,7 +49,7 @@ class PerformedSearchTest { } private val provider = AssetsSearchEngineProvider( - localizationProvider = FenixLocaleSearchLocalizationProvider(), + localizationProvider = LocaleSearchLocalizationProvider(), additionalIdentifiers = listOf( "amazon-au", "amazon-br",