Browse Source

[android] Fix: Prevent crash on Bluetooth controller disconnect

pull/262/head
edendev 8 months ago
parent
commit
abbc4fefee
No known key found for this signature in database GPG Key ID: BA8734FD0EE46976
  1. 26
      src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt

26
src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt

@ -37,18 +37,22 @@ object InputHandler {
} }
fun dispatchGenericMotionEvent(event: MotionEvent): Boolean { fun dispatchGenericMotionEvent(event: MotionEvent): Boolean {
val controllerData =
androidControllers[event.device.controllerNumber] ?: return false
event.device.motionRanges.forEach {
NativeInput.onGamePadAxisEvent(
controllerData.getGUID(),
controllerData.getPort(),
it.axis,
event.getAxisValue(it.axis)
)
}
return true
var controllerData = androidControllers[event.device.controllerNumber]
if (controllerData == null) {
updateControllerData()
controllerData = androidControllers[event.device.controllerNumber] ?: return false
}
event.device.motionRanges.forEach {
NativeInput.onGamePadAxisEvent(
controllerData.getGUID(),
controllerData.getPort(),
it.axis,
event.getAxisValue(it.axis)
)
} }
return true
}
fun getDevices(): Map<Int, YuzuPhysicalDevice> { fun getDevices(): Map<Int, YuzuPhysicalDevice> {
val gameControllerDeviceIds = mutableMapOf<Int, YuzuPhysicalDevice>() val gameControllerDeviceIds = mutableMapOf<Int, YuzuPhysicalDevice>()

Loading…
Cancel
Save