1
0
Fork 0

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

master
Jeff Boek 2019-06-10 13:13:10 -07:00
parent a86ec60f8f
commit fead5183c8
1 changed files with 17 additions and 5 deletions

View File

@ -76,7 +76,14 @@ abstract class SearchEngineListPreference : Preference, CompoundButton.OnChecked
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,
Settings.getInstance(context).defaultSearchEngineName
@ -90,17 +97,22 @@ abstract class SearchEngineListPreference : Preference, CompoundButton.OnChecked
ViewGroup.LayoutParams.WRAP_CONTENT
)
for (i in searchEngines.indices) {
val engine = searchEngines[i]
val setupSearchEngineItem: (Int, SearchEngine) -> Unit = { index, engine ->
val engineId = engine.identifier
val engineItem = makeButtonFromSearchEngine(engine, layoutInflater, context.resources)
engineItem.id = i
engineItem.id = index
engineItem.tag = engineId
if (engineId == defaultSearchEngine) {
if (engineId == selectedSearchEngine) {
updateDefaultItem(engineItem.radio_button)
}
searchEngineGroup!!.addView(engineItem, layoutParams)
}
setupSearchEngineItem(0, defaultSearchEngine)
searchEngines
.filter { it.identifier != defaultSearchEngine.identifier }
.forEachIndexed(setupSearchEngineItem)
}
private fun makeButtonFromSearchEngine(