diff --git a/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineListPreference.kt b/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineListPreference.kt index af1add500..cf19417b6 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineListPreference.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineListPreference.kt @@ -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) } )