Browse Source

Fixed reinitializing the SDL joystick subsystem on Android

Sam Lantinga 6 years ago
parent
commit
b699ddc0a9

+ 17 - 20
android-project/app/src/main/java/org/libsdl/app/SDLControllerManager.java

@@ -36,27 +36,24 @@ public class SDLControllerManager
     private static final String TAG = "SDLControllerManager";
     private static final String TAG = "SDLControllerManager";
 
 
     public static void initialize() {
     public static void initialize() {
-        mJoystickHandler = null;
-        mHapticHandler = null;
-
-        SDLControllerManager.setup();
-    }
-
-    public static void setup() {
-        if (Build.VERSION.SDK_INT >= 19) {
-            mJoystickHandler = new SDLJoystickHandler_API19();
-        } else if (Build.VERSION.SDK_INT >= 16) {
-            mJoystickHandler = new SDLJoystickHandler_API16();
-        } else if (Build.VERSION.SDK_INT >= 12) {
-            mJoystickHandler = new SDLJoystickHandler_API12();
-        } else {
-            mJoystickHandler = new SDLJoystickHandler();
+        if (mJoystickHandler == null) {
+            if (Build.VERSION.SDK_INT >= 19) {
+                mJoystickHandler = new SDLJoystickHandler_API19();
+            } else if (Build.VERSION.SDK_INT >= 16) {
+                mJoystickHandler = new SDLJoystickHandler_API16();
+            } else if (Build.VERSION.SDK_INT >= 12) {
+                mJoystickHandler = new SDLJoystickHandler_API12();
+            } else {
+                mJoystickHandler = new SDLJoystickHandler();
+            }
         }
         }
 
 
-        if (Build.VERSION.SDK_INT >= 26) {
-            mHapticHandler = new SDLHapticHandler_API26();
-        } else {
-            mHapticHandler = new SDLHapticHandler();
+        if (mHapticHandler == null) {
+            if (Build.VERSION.SDK_INT >= 26) {
+                mHapticHandler = new SDLHapticHandler_API26();
+            } else {
+                mHapticHandler = new SDLHapticHandler();
+            }
         }
         }
     }
     }
 
 
@@ -846,4 +843,4 @@ class SDLGenericMotionListener_API26 extends SDLGenericMotionListener_API24 {
         // Relative mouse in capture mode will only have relative for X/Y
         // Relative mouse in capture mode will only have relative for X/Y
         return event.getY(0);
         return event.getY(0);
     }
     }
-}
+}