Previously, SDL_ShouldIgnoreJoystick wasn't being called for Android, and fingerprint sensors were recognized as joysticks. (cherry picked from commit 1af7dfb0a7cb75a682ec0c6eb8ed40ada818688e)
@@ -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;
@@ -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);