For #3278 - pin the default search engine to the top

nightly-build-test
Jeff Boek 5 years ago
parent a86ec60f8f
commit fead5183c8

@ -76,7 +76,14 @@ abstract class SearchEngineListPreference : Preference, CompoundButton.OnChecked
return return
} }
val defaultSearchEngine = // To get the default search engine we have to pass in a name that doesn't exist
// https://github.com/mozilla-mobile/android-components/issues/3344
val defaultSearchEngine = context.components.search.searchEngineManager.getDefaultSearchEngine(
context,
"."
)
val selectedSearchEngine =
context.components.search.searchEngineManager.getDefaultSearchEngine( context.components.search.searchEngineManager.getDefaultSearchEngine(
context, context,
Settings.getInstance(context).defaultSearchEngineName Settings.getInstance(context).defaultSearchEngineName
@ -90,17 +97,22 @@ abstract class SearchEngineListPreference : Preference, CompoundButton.OnChecked
ViewGroup.LayoutParams.WRAP_CONTENT ViewGroup.LayoutParams.WRAP_CONTENT
) )
for (i in searchEngines.indices) { val setupSearchEngineItem: (Int, SearchEngine) -> Unit = { index, engine ->
val engine = searchEngines[i]
val engineId = engine.identifier val engineId = engine.identifier
val engineItem = makeButtonFromSearchEngine(engine, layoutInflater, context.resources) val engineItem = makeButtonFromSearchEngine(engine, layoutInflater, context.resources)
engineItem.id = i engineItem.id = index
engineItem.tag = engineId engineItem.tag = engineId
if (engineId == defaultSearchEngine) { if (engineId == selectedSearchEngine) {
updateDefaultItem(engineItem.radio_button) updateDefaultItem(engineItem.radio_button)
} }
searchEngineGroup!!.addView(engineItem, layoutParams) searchEngineGroup!!.addView(engineItem, layoutParams)
} }
setupSearchEngineItem(0, defaultSearchEngine)
searchEngines
.filter { it.identifier != defaultSearchEngine.identifier }
.forEachIndexed(setupSearchEngineItem)
} }
private fun makeButtonFromSearchEngine( private fun makeButtonFromSearchEngine(

Loading…
Cancel
Save