Allow Android to ignore unnecessary joysticks

Previously, SDL_ShouldIgnoreJoystick wasn't being called for Android, and fingerprint sensors were recognized as joysticks.
This commit is contained in:
Nintorch
2025-08-16 21:55:03 +05:00
committed by Sam Lantinga
parent 81920b5db7
commit 1af7dfb0a7
2 changed files with 6 additions and 2 deletions

View File

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

View File

@@ -328,6 +328,10 @@ void Android_AddJoystick(int device_id, const char *name, const char *desc, int
goto done; goto done;
} }
if (SDL_ShouldIgnoreJoystick(vendor_id, product_id, 0, name)) {
goto done;
}
#ifdef DEBUG_JOYSTICK #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); 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 #endif