1
0
Fork 0
forked from suyu/suyu

android: Add dedicated show overlay checkbox

This commit is contained in:
german77 2023-04-30 20:13:20 -06:00 committed by bunnei
parent 912bf6a0c6
commit d1fb7ea58b
3 changed files with 30 additions and 6 deletions

View file

@ -3,6 +3,7 @@
package org.yuzu.yuzu_emu.fragments package org.yuzu.yuzu_emu.fragments
import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import android.graphics.Color import android.graphics.Color
@ -222,8 +223,10 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
popup.menuInflater.inflate(R.menu.menu_overlay_options, popup.menu) popup.menuInflater.inflate(R.menu.menu_overlay_options, popup.menu)
popup.menu.findItem(R.id.menu_rel_stick_center).isChecked = EmulationMenuSettings.joystickRelCenter popup.menu.findItem(R.id.menu_rel_stick_center).isChecked =
EmulationMenuSettings.joystickRelCenter
popup.menu.findItem(R.id.menu_dpad_slide).isChecked = EmulationMenuSettings.dpadSlide popup.menu.findItem(R.id.menu_dpad_slide).isChecked = EmulationMenuSettings.dpadSlide
popup.menu.findItem(R.id.menu_show_overlay).isChecked = EmulationMenuSettings.showOverlay
popup.setOnMenuItemClickListener { popup.setOnMenuItemClickListener {
when (it.itemId) { when (it.itemId) {
@ -241,7 +244,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
optionsArray[i] = preferences.getBoolean("buttonToggle$i", i < 13) optionsArray[i] = preferences.getBoolean("buttonToggle$i", i < 13)
} }
MaterialAlertDialogBuilder(requireContext()) val dialog = MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.emulation_toggle_controls) .setTitle(R.string.emulation_toggle_controls)
.setMultiChoiceItems( .setMultiChoiceItems(
R.array.gamepadButtons, R.array.gamepadButtons,
@ -254,12 +257,27 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
.setPositiveButton(android.R.string.ok) { _, _ -> .setPositiveButton(android.R.string.ok) { _, _ ->
refreshInputOverlay() refreshInputOverlay()
} }
.setNeutralButton(R.string.emulation_toggle_all) { _, _ -> .setNeutralButton(R.string.emulation_toggle_all) { _, _ -> }
EmulationMenuSettings.showOverlay = !EmulationMenuSettings.showOverlay
refreshInputOverlay()
}
.show() .show()
// Override normal behaviour so the dialog doesn't close
dialog.getButton(AlertDialog.BUTTON_NEUTRAL)
.setOnClickListener {
val isChecked = !optionsArray[0];
for (i in 0..14) {
optionsArray[i] = isChecked;
dialog.listView.setItemChecked(i, isChecked)
preferences.edit()
.putBoolean("buttonToggle$i", isChecked)
.apply()
}
}
true
}
R.id.menu_show_overlay -> {
it.isChecked = !it.isChecked
EmulationMenuSettings.showOverlay = it.isChecked
refreshInputOverlay()
true true
} }
R.id.menu_rel_stick_center -> { R.id.menu_rel_stick_center -> {

View file

@ -9,6 +9,11 @@
android:id="@+id/menu_toggle_controls" android:id="@+id/menu_toggle_controls"
android:title="@string/emulation_toggle_controls" /> android:title="@string/emulation_toggle_controls" />
<item
android:id="@+id/menu_show_overlay"
android:title="@string/emulation_show_overlay"
android:checkable="true" />
<item <item
android:id="@+id/menu_rel_stick_center" android:id="@+id/menu_rel_stick_center"
android:title="@string/emulation_rel_stick_center" android:title="@string/emulation_rel_stick_center"

View file

@ -139,6 +139,7 @@
<string name="emulation_toggle_controls">Toggle Controls</string> <string name="emulation_toggle_controls">Toggle Controls</string>
<string name="emulation_rel_stick_center">Relative Stick Center</string> <string name="emulation_rel_stick_center">Relative Stick Center</string>
<string name="emulation_dpad_slide">DPad Slide</string> <string name="emulation_dpad_slide">DPad Slide</string>
<string name="emulation_show_overlay">Show Overlay</string>
<string name="emulation_toggle_all">Toggle All</string> <string name="emulation_toggle_all">Toggle All</string>
<string name="emulation_control_scale">Adjust Scale</string> <string name="emulation_control_scale">Adjust Scale</string>
<string name="emulation_touch_overlay_reset">Reset Overlay</string> <string name="emulation_touch_overlay_reset">Reset Overlay</string>