[android] Fix: Prevent crash on Bluetooth controller disconnect

This commit is contained in:
edendev 2025-07-04 23:33:32 +00:00
parent d8bfc691d1
commit abbc4fefee
No known key found for this signature in database
GPG key ID: BA8734FD0EE46976

View file

@ -37,19 +37,23 @@ object InputHandler {
} }
fun dispatchGenericMotionEvent(event: MotionEvent): Boolean { fun dispatchGenericMotionEvent(event: MotionEvent): Boolean {
val controllerData = var controllerData = androidControllers[event.device.controllerNumber]
androidControllers[event.device.controllerNumber] ?: return false if (controllerData == null) {
event.device.motionRanges.forEach { updateControllerData()
NativeInput.onGamePadAxisEvent( controllerData = androidControllers[event.device.controllerNumber] ?: return false
controllerData.getGUID(),
controllerData.getPort(),
it.axis,
event.getAxisValue(it.axis)
)
}
return true
} }
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>()
val deviceIds = InputDevice.getDeviceIds() val deviceIds = InputDevice.getDeviceIds()