From d89fbd7af84a6b8e59aea9bd438131b5c81ef802 Mon Sep 17 00:00:00 2001 From: Sebastian Kaspari Date: Fri, 28 Feb 2020 15:11:31 +0100 Subject: [PATCH] FenixSearchEngineProvider: Use dummy location service in debug builds. Workaround for issue described in: https://github.com/mozilla-mobile/android-components/issues/5989 For debug builds it is unnecessary to use the actual location provider since those builds do not have an API key configured. With that patch we replace the location provider with a dummy implementation in debug builds. --- .../searchengine/FenixSearchEngineProvider.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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 6fec87291..aa7ee6421 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 @@ -18,9 +18,11 @@ import mozilla.components.browser.search.provider.SearchEngineList import mozilla.components.browser.search.provider.SearchEngineProvider import mozilla.components.browser.search.provider.filter.SearchEngineFilter import mozilla.components.browser.search.provider.localization.SearchLocalizationProvider +import mozilla.components.service.location.LocationService import mozilla.components.service.location.MozillaLocationService import mozilla.components.service.location.search.RegionSearchLocalizationProvider import org.mozilla.fenix.BuildConfig +import org.mozilla.fenix.Config import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings import java.util.Locale @@ -29,16 +31,19 @@ import java.util.Locale open class FenixSearchEngineProvider( private val context: Context ) : SearchEngineProvider, CoroutineScope by CoroutineScope(Job() + Dispatchers.IO) { + private val locationService: LocationService = if (Config.channel.isDebug) { + LocationService.dummy() + } else { + MozillaLocationService( + context, + context.components.core.client, + BuildConfig.MLS_TOKEN + ) + } @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) open val localizationProvider: SearchLocalizationProvider = - RegionSearchLocalizationProvider( - MozillaLocationService( - context, - context.components.core.client, - BuildConfig.MLS_TOKEN - ) - ) + RegionSearchLocalizationProvider(locationService) open var baseSearchEngines = async { AssetsSearchEngineProvider(localizationProvider).loadSearchEngines(context)