Revert "For #12544 - Prevent search engines mixup"

This reverts commit 0a4a170f7e.
pull/149/head
Jeff Boek 4 years ago
parent 0afb7a3f25
commit 8bdc9d0431

@ -7,6 +7,7 @@ package org.mozilla.fenix.components.searchengine
import android.content.Context import android.content.Context
import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.async import kotlinx.coroutines.async
@ -32,16 +33,14 @@ import java.util.Locale
open class FenixSearchEngineProvider( open class FenixSearchEngineProvider(
private val context: Context private val context: Context
) : SearchEngineProvider, CoroutineScope by CoroutineScope(Job() + Dispatchers.IO) { ) : SearchEngineProvider, CoroutineScope by CoroutineScope(Job() + Dispatchers.IO) {
private val locationService = with(MozillaLocationService( private val locationService: LocationService = if (Config.channel.isDebug) {
context, LocationService.dummy()
context.components.core.client, } else {
BuildConfig.MLS_TOKEN MozillaLocationService(
)) { context,
if (Config.channel.isDebug || !this.hasRegionCached()) { context.components.core.client,
LocationService.dummy() BuildConfig.MLS_TOKEN
} else { )
this
}
} }
// We have two search engine types: one based on MLS reported region, one based only on Locale. // We have two search engine types: one based on MLS reported region, one based only on Locale.
@ -94,6 +93,17 @@ open class FenixSearchEngineProvider(
private var loadedSearchEngines = refreshAsync() private var loadedSearchEngines = refreshAsync()
// https://github.com/mozilla-mobile/fenix/issues/9935
// Create new getter that will return the fallback SearchEngineList if
// the main one hasn't completed yet
private val searchEngines: Deferred<SearchEngineList>
get() =
if (isRegionCachedByLocationService) {
loadedSearchEngines
} else {
fallbackEngines
}
fun getDefaultEngine(context: Context): SearchEngine { fun getDefaultEngine(context: Context): SearchEngine {
val engines = installedSearchEngines(context) val engines = installedSearchEngines(context)
val selectedName = context.settings().defaultSearchEngineName val selectedName = context.settings().defaultSearchEngineName
@ -107,7 +117,7 @@ open class FenixSearchEngineProvider(
*/ */
fun installedSearchEngines(context: Context): SearchEngineList = runBlocking { fun installedSearchEngines(context: Context): SearchEngineList = runBlocking {
val installedIdentifiers = installedSearchEngineIdentifiers(context) val installedIdentifiers = installedSearchEngineIdentifiers(context)
val engineList = loadedSearchEngines.await() val engineList = searchEngines.await()
engineList.copy( engineList.copy(
list = engineList.list.filter { list = engineList.list.filter {
@ -178,11 +188,7 @@ open class FenixSearchEngineProvider(
} }
private fun refreshAsync() = async { private fun refreshAsync() = async {
val engineList = if (isRegionCachedByLocationService) { val engineList = baseSearchEngines.await()
baseSearchEngines.await()
} else {
fallbackEngines.await()
}
val bundledList = bundledSearchEngines.await().list val bundledList = bundledSearchEngines.await().list
val customList = customSearchEngines.await().list val customList = customSearchEngines.await().list

Loading…
Cancel
Save