diff options
| author | JosJuice <josjuice@gmail.com> | 2025-10-17 22:38:52 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2025-11-16 09:46:00 +0100 |
| commit | a026a0d5e49627b28d3a960915e7ccbba399b1a5 (patch) | |
| tree | 3e03d31923521223c0835658783b28ea68c080a9 /Source/Android/app/src/main/java | |
| parent | b74c3faa486442f3240c75b88a1c592d1cbcba97 (diff) | |
Android: Treat EmulationActivity dialog dismiss the same as OK
In the dialog where you can choose what controller the input overlay
should be controlling, there's an OK button. If you change controller
but don't press OK, your selection will be saved, but the input overlay
won't refresh to show the new controller unless you perform some other
action that would cause it to refresh. This is not good UX.
This commit changes the behavior not only of this dialog but also other
dialogs spawned by EmulationActivity so that everything is properly
updated when dismissing a dialog, as if you had pressed OK.
Diffstat (limited to 'Source/Android/app/src/main/java')
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt | 51 |
1 files changed, 24 insertions, 27 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt index 184392f75f..60d4311ee5 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt @@ -561,6 +561,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { ) { _: DialogInterface?, indexSelected: Int, isChecked: Boolean -> BooleanSetting.valueOf(gcSettingBase + indexSelected) .setBoolean(settings, isChecked) + emulationFragment?.refreshInputOverlay() } } InputOverlay.OVERLAY_WIIMOTE_CLASSIC -> { @@ -575,6 +576,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { ) { _: DialogInterface?, indexSelected: Int, isChecked: Boolean -> BooleanSetting.valueOf(classicSettingBase + indexSelected) .setBoolean(settings, isChecked) + emulationFragment?.refreshInputOverlay() } } InputOverlay.OVERLAY_WIIMOTE_NUNCHUK -> { @@ -596,6 +598,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { ) { _: DialogInterface?, indexSelected: Int, isChecked: Boolean -> BooleanSetting.valueOf(nunchukSettingBase + translateToSettingsIndex(indexSelected)) .setBoolean(settings, isChecked) + emulationFragment?.refreshInputOverlay() } } else -> { @@ -611,14 +614,13 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { ) { _: DialogInterface?, indexSelected: Int, isChecked: Boolean -> BooleanSetting.valueOf(wiimoteSettingBase + indexSelected) .setBoolean(settings, isChecked) + emulationFragment?.refreshInputOverlay() } } } builder - .setPositiveButton(R.string.ok) { _: DialogInterface?, _: Int -> - emulationFragment?.refreshInputOverlay() - } + .setPositiveButton(R.string.ok, null) .show() } @@ -640,6 +642,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { ) { _: DialogInterface?, indexSelected: Int, isChecked: Boolean -> BooleanSetting .valueOf(gcSettingBase + indexSelected).setBoolean(settings, isChecked) + emulationFragment?.refreshInputOverlay() } } else if (currentController == InputOverlay.OVERLAY_WIIMOTE_CLASSIC) { val wiiClassicEnabledButtons = BooleanArray(14) @@ -653,6 +656,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { ) { _: DialogInterface?, indexSelected: Int, isChecked: Boolean -> BooleanSetting.valueOf(classicSettingBase + indexSelected) .setBoolean(settings, isChecked) + emulationFragment?.refreshInputOverlay() } } else { val wiiEnabledButtons = BooleanArray(11) @@ -667,6 +671,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { ) { _: DialogInterface?, indexSelected: Int, isChecked: Boolean -> BooleanSetting .valueOf(wiiSettingBase + indexSelected).setBoolean(settings, isChecked) + emulationFragment?.refreshInputOverlay() } } else { builder.setMultiChoiceItems( @@ -674,6 +679,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { ) { _: DialogInterface?, indexSelected: Int, isChecked: Boolean -> BooleanSetting .valueOf(wiiSettingBase + indexSelected).setBoolean(settings, isChecked) + emulationFragment?.refreshInputOverlay() } } } @@ -682,7 +688,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { .setNeutralButton(R.string.emulation_toggle_all) { _: DialogInterface?, _: Int -> emulationFragment!!.toggleInputOverlayVisibility(settings) } - .setPositiveButton(R.string.ok) { _: DialogInterface?, _: Int -> emulationFragment?.refreshInputOverlay() } + .setPositiveButton(R.string.ok, null) .show() } @@ -707,10 +713,9 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { settings, InputOverlayPointer.DOUBLE_TAP_OPTIONS[which] ) - } - .setPositiveButton(R.string.ok) { _: DialogInterface?, _: Int -> emulationFragment?.initInputPointer() } + .setPositiveButton(R.string.ok, null) .show() } @@ -721,9 +726,11 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { valueTo = 150f value = IntSetting.MAIN_CONTROL_SCALE.int.toFloat() stepSize = 1f - addOnChangeListener(Slider.OnChangeListener { _: Slider?, progress: Float, _: Boolean -> - dialogBinding.inputScaleValue.text = "${(progress.toInt() + 50)}%" - }) + addOnChangeListener { _: Slider?, value: Float, _: Boolean -> + dialogBinding.inputScaleValue.text = "${(value.toInt() + 50)}%" + IntSetting.MAIN_CONTROL_SCALE.setInt(settings, value.toInt()) + emulationFragment?.refreshInputOverlay() + } } inputScaleValue.text = "${(dialogBinding.inputScaleSlider.value.toInt() + 50)}%" @@ -732,9 +739,11 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { valueTo = 100f value = IntSetting.MAIN_CONTROL_OPACITY.int.toFloat() stepSize = 1f - addOnChangeListener(Slider.OnChangeListener { _: Slider?, progress: Float, _: Boolean -> - inputOpacityValue.text = progress.toInt().toString() + "%" - }) + addOnChangeListener { _: Slider?, value: Float, _: Boolean -> + inputOpacityValue.text = value.toInt().toString() + "%" + IntSetting.MAIN_CONTROL_OPACITY.setInt(settings, value.toInt()) + emulationFragment?.refreshInputOverlay() + } } inputOpacityValue.text = inputOpacitySlider.value.toInt().toString() + "%" } @@ -742,17 +751,7 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { MaterialAlertDialogBuilder(this) .setTitle(R.string.emulation_control_adjustments) .setView(dialogBinding.root) - .setPositiveButton(R.string.ok) { _: DialogInterface?, _: Int -> - IntSetting.MAIN_CONTROL_SCALE.setInt( - settings, - dialogBinding.inputScaleSlider.value.toInt() - ) - IntSetting.MAIN_CONTROL_OPACITY.setInt( - settings, - dialogBinding.inputOpacitySlider.value.toInt() - ) - emulationFragment?.refreshInputOverlay() - } + .setPositiveButton(R.string.ok, null) .setNeutralButton(R.string.default_values) { _: DialogInterface?, _: Int -> IntSetting.MAIN_CONTROL_SCALE.delete(settings) IntSetting.MAIN_CONTROL_OPACITY.delete(settings) @@ -858,10 +857,9 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { entries.toArray(arrayOf<CharSequence>()), checkedItem ) { _: DialogInterface?, indexSelected: Int -> controllerSetting.setInt(settings, values[indexSelected]) - } - .setPositiveButton(R.string.ok) { _: DialogInterface?, _: Int -> emulationFragment?.refreshInputOverlay() } + .setPositiveButton(R.string.ok, null) .setNeutralButton( R.string.emulation_more_controller_settings ) { _: DialogInterface?, _: Int -> SettingsActivity.launch(this, MenuTag.SETTINGS) } @@ -876,10 +874,9 @@ class EmulationActivity : AppCompatActivity(), ThemeProvider { IntSetting.MAIN_IR_MODE.int ) { _: DialogInterface?, indexSelected: Int -> IntSetting.MAIN_IR_MODE.setInt(settings, indexSelected) - } - .setPositiveButton(R.string.ok) { _: DialogInterface?, _: Int -> emulationFragment?.refreshOverlayPointer() } + .setPositiveButton(R.string.ok, null) .show() } |
