diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt index 2c7356e6a7..a5b4e6eb5c 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt @@ -37,19 +37,23 @@ object InputHandler { } 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 { val gameControllerDeviceIds = mutableMapOf() val deviceIds = InputDevice.getDeviceIds()