1
0
Fork 0

For #3869: Switch to A-C SearchLocalizationProvider (#4858)

* For #3869: Switch to A-C SearchLocalizationProvider

* Fix test
master
Colin Lee 2019-08-21 13:14:59 -05:00 committed by Jeff Boek
parent 23b9a41059
commit 051ae9f584
2 changed files with 12 additions and 27 deletions

View File

@ -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()

View File

@ -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",