Allow Android to ignore unnecessary joysticks

Previously, SDL_ShouldIgnoreJoystick wasn't being called for Android, and fingerprint sensors were recognized as joysticks.

(cherry picked from commit 1af7dfb0a7)
This commit is contained in:
Nintorch
2025-08-16 21:55:03 +05:00
committed by Sam Lantinga
parent a744eee993
commit 2743716132
2 changed files with 6 additions and 2 deletions

View File

@@ -2683,8 +2683,8 @@ bool SDL_ShouldIgnoreGamepad(Uint16 vendor_id, Uint16 product_id, Uint16 version
}
#endif
if (name && SDL_strcmp(name, "uinput-fpc") == 0) {
// The Google Pixel fingerprint sensor reports itself as a joystick
if (name && SDL_startswith(name, "uinput-")) {
// The Google Pixel fingerprint sensor, as well as other fingerprint sensors, reports itself as a joystick
return true;
}

View File

@@ -328,6 +328,10 @@ void Android_AddJoystick(int device_id, const char *name, const char *desc, int
goto done;
}
if (SDL_ShouldIgnoreJoystick(vendor_id, product_id, 0, name)) {
goto done;
}
#ifdef DEBUG_JOYSTICK
SDL_Log("Joystick: %s, descriptor %s, vendor = 0x%.4x, product = 0x%.4x, %d axes, %d hats", name, desc, vendor_id, product_id, naxes, nhats);
#endif