From 66e357f29a994d7dec64af48737b7be8491f9051 Mon Sep 17 00:00:00 2001 From: Nintorch <92302738+Nintorch@users.noreply.github.com> Date: Fri, 26 Dec 2025 10:19:03 +0500 Subject: [PATCH] Joypads: ignore Android fingerprint scanners Fix Android fingerprint scanners being detected as joypads --- .../godot/input/GodotInputHandler.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/platform/android/java/lib/src/main/java/org/godotengine/godot/input/GodotInputHandler.java b/platform/android/java/lib/src/main/java/org/godotengine/godot/input/GodotInputHandler.java index 991fe032d87..ccf4412eb0d 100644 --- a/platform/android/java/lib/src/main/java/org/godotengine/godot/input/GodotInputHandler.java +++ b/platform/android/java/lib/src/main/java/org/godotengine/godot/input/GodotInputHandler.java @@ -70,6 +70,16 @@ public class GodotInputHandler implements InputManager.InputDeviceListener, Sens private static final int ROTARY_INPUT_VERTICAL_AXIS = 1; private static final int ROTARY_INPUT_HORIZONTAL_AXIS = 0; + private static final String[] JOYPAD_IGNORE_LIST = new String[] { + // Ignore fingerprint scanners. + "uinput-fpc", + "uinput-goodix", + "uinput-synaptics", + "uinput-elan", + "uinput-vfs", + "uinput-atrus", + }; + private final SparseIntArray mJoystickIds = new SparseIntArray(4); private final SparseArray mJoysticksDevices = new SparseArray<>(4); private final HashSet mHardwareKeyboardIds = new HashSet<>(); @@ -359,6 +369,13 @@ public class GodotInputHandler implements InputManager.InputDeviceListener, Sens return; } + for (String name : JOYPAD_IGNORE_LIST) { + if (device.getName().equals(name)) { + Log.i(TAG, "=== Input Device ignored: " + device.getName()); + return; + } + } + // Assign first available number. Reuse numbers where possible. final int id = assignJoystickIdNumber(deviceId);