From eeae30e2bb9727aaf2656a8d9267f13d8e8c3085 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Mon, 12 May 2025 21:31:24 +0200 Subject: [PATCH] Android: Don't dismiss AdvancedMappingDialog when pressing Clear If you already have a mapping set in the advanced mapping dialog and want to change it, the easiest way to do it is to press Clear and then select the new mapping from the list. But pressing Clear causes the dialog to close, forcing you to open it again, which is inconvenient. This commit makes it so the Clear button doesn't close the dialog. --- .../features/input/ui/AdvancedMappingDialog.kt | 3 ++- .../features/settings/ui/SettingsAdapter.kt | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt index d390601667..7d1c83a217 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/AdvancedMappingDialog.kt @@ -52,8 +52,9 @@ class AdvancedMappingDialog( selectDefaultDevice() } - val expression: String + var expression: String get() = binding.editExpression.text.toString() + set(value) = binding.editExpression.setText(value) override fun onItemClick(adapterView: AdapterView<*>?, view: View, position: Int, id: Long) = setSelectedDevice(devices[position]) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt index bcf68e67ec..59cc9b941c 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsAdapter.kt @@ -347,13 +347,15 @@ class SettingsAdapter( dialog.setButton( AlertDialog.BUTTON_NEUTRAL, context.getString(R.string.clear) - ) { _: DialogInterface?, _: Int -> - item.clearValue() - notifyItemChanged(position) - fragmentView.onSettingChanged() - } + ) { _: DialogInterface?, _: Int -> } dialog.setCanceledOnTouchOutside(false) dialog.show() + + // We're setting this OnClickListener late so that pressing the Clear button won't result + // in the dialog closing + dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener { + dialog.expression = "" + } } fun onFilePickerDirectoryClick(item: SettingsItem, position: Int) {