1
0
Fork 0

For #6709, for #6849 Handle default engine deletion and undo operation

Uninstall engine immediately and allow reinstall in onCancel.
Set previous list with default engine in onCancel.
Keep default engine change in operation and remove now unnecessary view refresh.
master
mcarare 2019-12-16 14:55:01 +02:00 committed by Jeff Boek
parent f439c8110e
commit 907d96e39f
1 changed files with 12 additions and 6 deletions

View File

@ -162,21 +162,28 @@ abstract class SearchEngineListPreference @JvmOverloads constructor(
}
private fun deleteSearchEngine(context: Context, engine: SearchEngine) {
val isDefaultEngine = engine == context.components.search.provider.getDefaultEngine(context)
val initialEngineList = searchEngineList.copy()
val initialDefaultEngine = searchEngineList.default
context.components.search.provider.uninstallSearchEngine(context, engine)
MainScope().allowUndo(
view = context.getRootView()!!,
message = context
.getString(R.string.search_delete_search_engine_success_message, engine.name),
undoActionTitle = context.getString(R.string.snackbar_deleted_undo),
onCancel = {
searchEngineList = context.components.search.provider.installedSearchEngines(context)
context.components.search.provider.installSearchEngine(context, engine)
searchEngineList = initialEngineList.copy(
default = initialDefaultEngine
)
refreshSearchEngineViews(context)
},
operation = {
val defaultEngine = context.components.search.provider.getDefaultEngine(context)
context.components.search.provider.uninstallSearchEngine(context, engine)
if (engine == defaultEngine) {
if (isDefaultEngine) {
context.settings().defaultSearchEngineName = context
.components
.search
@ -184,7 +191,6 @@ abstract class SearchEngineListPreference @JvmOverloads constructor(
.getDefaultEngine(context)
.name
}
refreshSearchEngineViews(context)
}
)