1
0
Fork 0

For #9935 - Use the searchengine deferred

master
Jeff Boek 2020-06-25 15:25:57 -07:00
parent 40977a93a0
commit b1a8c0f483
2 changed files with 22 additions and 2 deletions

View File

@ -61,7 +61,8 @@ open class FenixSearchEngineProvider(
private val fallBackProvider =
AssetsSearchEngineProvider(fallbackLocationService)
private val fallbackEngines = async { fallBackProvider.loadSearchEngines(context) }
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
open val fallbackEngines = async { fallBackProvider.loadSearchEngines(context) }
private val fallbackRegion = async { fallbackLocationService.determineRegion() }
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
@ -213,7 +214,11 @@ open class FenixSearchEngineProvider(
}
if (!prefs.contains(installedEnginesKey)) {
val defaultSet = baseSearchEngines.await()
val searchEngines =
if (baseSearchEngines.isCompleted) baseSearchEngines
else fallbackEngines
val defaultSet = searchEngines.await()
.list
.map { it.identifier }
.toSet()

View File

@ -119,6 +119,21 @@ class FakeFenixSearchEngineProvider(context: Context) : FenixSearchEngineProvide
)
}
override val fallbackEngines: Deferred<SearchEngineList>
get() {
val google = mockSearchEngine(id = "google-b-1-m", n = "Google")
return CompletableDeferred(
SearchEngineList(
listOf(
google,
mockSearchEngine("bing", "Bing"),
mockSearchEngine("amazondotcom", "Amazon.com")
), default = google
)
)
}
override val bundledSearchEngines = CompletableDeferred(
SearchEngineList(
listOf(