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.
This commit is contained in:
parent
f439c8110e
commit
907d96e39f
|
@ -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)
|
||||
}
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user