Synchronize controller access on the Java side on Android

This commit is contained in:
Sam Lantinga
2026-05-12 18:59:06 -07:00
parent 7071efb6a3
commit 7222c04fbf

View File

@@ -340,7 +340,7 @@ class SDLJoystickHandler {
}
}
synchronized protected SDLJoystick getJoystick(int device_id) {
protected SDLJoystick getJoystick(int device_id) {
for (SDLJoystick joystick : mJoysticks) {
if (joystick.device_id == device_id) {
return joystick;
@@ -354,7 +354,7 @@ class SDLJoystickHandler {
* @param event the event to be handled.
* @return if given event was processed.
*/
boolean handleMotionEvent(MotionEvent event) {
synchronized boolean handleMotionEvent(MotionEvent event) {
int actionPointerIndex = event.getActionIndex();
int action = event.getActionMasked();
if (action == MotionEvent.ACTION_MOVE) {
@@ -524,7 +524,7 @@ class SDLJoystickHandler {
return button_mask;
}
void setLED(int device_id, int red, int green, int blue) {
synchronized void setLED(int device_id, int red, int green, int blue) {
if (Build.VERSION.SDK_INT < 31 /* Android 12.0 (S) */) {
return;
}
@@ -542,7 +542,7 @@ class SDLJoystickHandler {
joystick.lightsSession.requestLights(lightsRequest.build());
}
void setSensorsEnabled(int device_id, boolean enabled) {
synchronized void setSensorsEnabled(int device_id, boolean enabled) {
if (Build.VERSION.SDK_INT < 31 /* Android 12.0 (S) */) {
return;
}