summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2025-10-17 22:38:52 +0200
committerJosJuice <josjuice@gmail.com>2025-11-16 09:46:00 +0100
commita026a0d5e49627b28d3a960915e7ccbba399b1a5 (patch)
tree3e03d31923521223c0835658783b28ea68c080a9 /Source/Android/app/src/main/java
parentb74c3faa486442f3240c75b88a1c592d1cbcba97 (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.kt51
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()
}