diff options
Diffstat (limited to 'src')
5 files changed, 62 insertions, 6 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt index edc1a19ff..703d4623b 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt | |||
| @@ -21,6 +21,7 @@ import androidx.core.view.WindowInsetsCompat | |||
| 21 | import androidx.fragment.app.Fragment | 21 | import androidx.fragment.app.Fragment |
| 22 | import androidx.localbroadcastmanager.content.LocalBroadcastManager | 22 | import androidx.localbroadcastmanager.content.LocalBroadcastManager |
| 23 | import androidx.preference.PreferenceManager | 23 | import androidx.preference.PreferenceManager |
| 24 | import com.google.android.material.dialog.MaterialAlertDialogBuilder | ||
| 24 | import org.yuzu.yuzu_emu.NativeLibrary | 25 | import org.yuzu.yuzu_emu.NativeLibrary |
| 25 | import org.yuzu.yuzu_emu.R | 26 | import org.yuzu.yuzu_emu.R |
| 26 | import org.yuzu.yuzu_emu.YuzuApplication | 27 | import org.yuzu.yuzu_emu.YuzuApplication |
| @@ -30,12 +31,8 @@ import org.yuzu.yuzu_emu.features.settings.model.Settings | |||
| 30 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity | 31 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity |
| 31 | import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile | 32 | import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile |
| 32 | import org.yuzu.yuzu_emu.model.Game | 33 | import org.yuzu.yuzu_emu.model.Game |
| 33 | import org.yuzu.yuzu_emu.utils.DirectoryInitialization | 34 | import org.yuzu.yuzu_emu.utils.* |
| 34 | import org.yuzu.yuzu_emu.utils.DirectoryInitialization.DirectoryInitializationState | 35 | import org.yuzu.yuzu_emu.utils.DirectoryInitialization.DirectoryInitializationState |
| 35 | import org.yuzu.yuzu_emu.utils.DirectoryStateReceiver | ||
| 36 | import org.yuzu.yuzu_emu.utils.EmulationMenuSettings | ||
| 37 | import org.yuzu.yuzu_emu.utils.InsetsHelper | ||
| 38 | import org.yuzu.yuzu_emu.utils.Log | ||
| 39 | import org.yuzu.yuzu_emu.utils.SerializableHelper.parcelable | 36 | import org.yuzu.yuzu_emu.utils.SerializableHelper.parcelable |
| 40 | 37 | ||
| 41 | class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.FrameCallback { | 38 | class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.FrameCallback { |
| @@ -281,6 +278,35 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback, Choreographer.Fram | |||
| 281 | startConfiguringControls() | 278 | startConfiguringControls() |
| 282 | true | 279 | true |
| 283 | } | 280 | } |
| 281 | R.id.menu_toggle_controls -> { | ||
| 282 | val preferences = | ||
| 283 | PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext) | ||
| 284 | val optionsArray = BooleanArray(15) | ||
| 285 | for (i in 0..14) { | ||
| 286 | optionsArray[i] = preferences.getBoolean("buttonToggle$i", i < 13) | ||
| 287 | } | ||
| 288 | |||
| 289 | MaterialAlertDialogBuilder(requireContext()) | ||
| 290 | .setTitle(R.string.emulation_toggle_controls) | ||
| 291 | .setMultiChoiceItems( | ||
| 292 | R.array.gamepadButtons, | ||
| 293 | optionsArray | ||
| 294 | ) { _, indexSelected, isChecked -> | ||
| 295 | preferences.edit() | ||
| 296 | .putBoolean("buttonToggle$indexSelected", isChecked) | ||
| 297 | .commit() | ||
| 298 | } | ||
| 299 | .setPositiveButton(android.R.string.ok) { _, _ -> | ||
| 300 | refreshInputOverlay() | ||
| 301 | } | ||
| 302 | .setNeutralButton(R.string.emulation_toggle_all) { _, _ -> | ||
| 303 | EmulationMenuSettings.showOverlay = !EmulationMenuSettings.showOverlay | ||
| 304 | refreshInputOverlay() | ||
| 305 | } | ||
| 306 | .show() | ||
| 307 | |||
| 308 | true | ||
| 309 | } | ||
| 284 | R.id.menu_reset_overlay -> { | 310 | R.id.menu_reset_overlay -> { |
| 285 | binding.drawerLayout.close() | 311 | binding.drawerLayout.close() |
| 286 | resetInputOverlay() | 312 | resetInputOverlay() |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/EmulationMenuSettings.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/EmulationMenuSettings.kt index 937f13fea..e51ac1cc1 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/EmulationMenuSettings.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/EmulationMenuSettings.kt | |||
| @@ -57,6 +57,6 @@ object EmulationMenuSettings { | |||
| 57 | set(value) { | 57 | set(value) { |
| 58 | preferences.edit() | 58 | preferences.edit() |
| 59 | .putBoolean(Settings.PREF_MENU_SETTINGS_SHOW_OVERLAY, value) | 59 | .putBoolean(Settings.PREF_MENU_SETTINGS_SHOW_OVERLAY, value) |
| 60 | .apply() | 60 | .commit() |
| 61 | } | 61 | } |
| 62 | } | 62 | } |
diff --git a/src/android/app/src/main/res/menu/menu_overlay_options.xml b/src/android/app/src/main/res/menu/menu_overlay_options.xml index 75c84cdf3..b9341c508 100644 --- a/src/android/app/src/main/res/menu/menu_overlay_options.xml +++ b/src/android/app/src/main/res/menu/menu_overlay_options.xml | |||
| @@ -6,6 +6,10 @@ | |||
| 6 | android:title="@string/emulation_touch_overlay_edit" /> | 6 | android:title="@string/emulation_touch_overlay_edit" /> |
| 7 | 7 | ||
| 8 | <item | 8 | <item |
| 9 | android:id="@+id/menu_toggle_controls" | ||
| 10 | android:title="@string/emulation_toggle_controls" /> | ||
| 11 | |||
| 12 | <item | ||
| 9 | android:id="@+id/menu_reset_overlay" | 13 | android:id="@+id/menu_reset_overlay" |
| 10 | android:title="@string/emulation_touch_overlay_reset" /> | 14 | android:title="@string/emulation_touch_overlay_reset" /> |
| 11 | 15 | ||
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 7e25f12b8..6d909ddae 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml | |||
| @@ -135,4 +135,22 @@ | |||
| 135 | <item>3</item> | 135 | <item>3</item> |
| 136 | </integer-array> | 136 | </integer-array> |
| 137 | 137 | ||
| 138 | <string-array name="gamepadButtons"> | ||
| 139 | <item>A</item> | ||
| 140 | <item>B</item> | ||
| 141 | <item>X</item> | ||
| 142 | <item>Y</item> | ||
| 143 | <item>L</item> | ||
| 144 | <item>R</item> | ||
| 145 | <item>ZL</item> | ||
| 146 | <item>ZR</item> | ||
| 147 | <item>+</item> | ||
| 148 | <item>-</item> | ||
| 149 | <item>@string/gamepad_d_pad</item> | ||
| 150 | <item>@string/gamepad_left_stick</item> | ||
| 151 | <item>@string/gamepad_right_stick</item> | ||
| 152 | <item>@string/gamepad_home</item> | ||
| 153 | <item>@string/gamepad_screenshot</item> | ||
| 154 | </string-array> | ||
| 155 | |||
| 138 | </resources> | 156 | </resources> |
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 5c31fb322..ea9290df5 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml | |||
| @@ -85,6 +85,7 @@ | |||
| 85 | <string name="emulation_exit">Exit Emulation</string> | 85 | <string name="emulation_exit">Exit Emulation</string> |
| 86 | <string name="emulation_done">Done</string> | 86 | <string name="emulation_done">Done</string> |
| 87 | <string name="emulation_toggle_controls">Toggle Controls</string> | 87 | <string name="emulation_toggle_controls">Toggle Controls</string> |
| 88 | <string name="emulation_toggle_all">Toggle All</string> | ||
| 88 | <string name="emulation_control_scale">Adjust Scale</string> | 89 | <string name="emulation_control_scale">Adjust Scale</string> |
| 89 | <string name="emulation_touch_overlay_reset">Reset Overlay</string> | 90 | <string name="emulation_touch_overlay_reset">Reset Overlay</string> |
| 90 | <string name="emulation_touch_overlay_edit">Edit Overlay</string> | 91 | <string name="emulation_touch_overlay_edit">Edit Overlay</string> |
| @@ -173,4 +174,11 @@ | |||
| 173 | <string name="cpu_accuracy_unsafe">Unsafe</string> | 174 | <string name="cpu_accuracy_unsafe">Unsafe</string> |
| 174 | <string name="cpu_accuracy_paranoid">Paranoid (Slow)</string> | 175 | <string name="cpu_accuracy_paranoid">Paranoid (Slow)</string> |
| 175 | 176 | ||
| 177 | <!-- Gamepad Buttons --> | ||
| 178 | <string name="gamepad_d_pad">D-Pad</string> | ||
| 179 | <string name="gamepad_left_stick">Left Stick</string> | ||
| 180 | <string name="gamepad_right_stick">Right Stick</string> | ||
| 181 | <string name="gamepad_home">Home</string> | ||
| 182 | <string name="gamepad_screenshot">Screenshot</string> | ||
| 183 | |||
| 176 | </resources> | 184 | </resources> |