From ecc33ac29adff2738594dd8bfcd6b11f1028bfaa Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 12 May 2026 19:25:58 -0700 Subject: [PATCH] Change controller sensor state on the main UI thread on Android Fixes https://github.com/libsdl-org/SDL/issues/15565 (cherry picked from commit c362f1341f2e2e6abf34ae05d6068ad89bebd00d) --- .../main/java/org/libsdl/app/SDLControllerManager.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java b/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java index 31b07b0ac0..2a0296eb0c 100644 --- a/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java +++ b/android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java @@ -91,7 +91,13 @@ public class SDLControllerManager * This method is called by SDL using JNI. */ static void joystickSetSensorsEnabled(int device_id, boolean enabled) { - mJoystickHandler.setSensorsEnabled(device_id, enabled); + // Run this on the UI thread so we don't race with enableSensor() in SDLSurface.java + SDL.getContext().runOnUiThread(new Runnable() { + @Override + public void run() { + mJoystickHandler.setSensorsEnabled(device_id, enabled); + } + }); } /**