diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputDialogFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputDialogFragment.kt index 0e2f78c49f..d07a6e6aea 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputDialogFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/InputDialogFragment.kt @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: 2024 yuzu Emulator Project @@ -169,7 +169,7 @@ class InputDialogFragment : DialogFragment() { NativeInput.onGamePadButtonEvent( controllerData.getGUID(), controllerData.getPort(), - InputHandler.getButtonIdFromEvent(event), + event.keyCode, action ) onInputReceived(event.device) 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 cde084c68f..1909a73319 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 @@ -49,12 +49,6 @@ object InputHandler { MotionEvent.AXIS_RTRIGGER ) - // Currently, Android doesn't support Joy-Con D-pad buttons. We fall back to the scan code - private const val LINUX_BUTTON_DPAD_UP = 0x220 - private const val LINUX_BUTTON_DPAD_DOWN = 0x221 - private const val LINUX_BUTTON_DPAD_LEFT = 0x222 - private const val LINUX_BUTTON_DPAD_RIGHT = 0x223 - fun isPhysicalGameController(device: InputDevice?): Boolean { device ?: return false @@ -93,25 +87,12 @@ object InputHandler { NativeInput.onGamePadButtonEvent( controllerData.getGUID(), controllerData.getPort(), - getButtonIdFromEvent(event), + event.keyCode, action ) return true } - fun getButtonIdFromEvent(event: KeyEvent): Int { - if (event.keyCode == 0) { - return when (event.scanCode) { - LINUX_BUTTON_DPAD_UP -> KeyEvent.KEYCODE_DPAD_UP - LINUX_BUTTON_DPAD_DOWN -> KeyEvent.KEYCODE_DPAD_DOWN - LINUX_BUTTON_DPAD_LEFT -> KeyEvent.KEYCODE_DPAD_LEFT - LINUX_BUTTON_DPAD_RIGHT -> KeyEvent.KEYCODE_DPAD_RIGHT - else -> return 0 - } - } - return event.keyCode - } - fun dispatchGenericMotionEvent(event: MotionEvent): Boolean { val controllerData = androidControllers[event.device.controllerNumber] ?: return false