From b699ddc0a91fea4f3be79e29587a6cf548386dc2 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 23 Oct 2018 12:40:25 -0700 Subject: [PATCH] Fixed reinitializing the SDL joystick subsystem on Android --- .../org/libsdl/app/SDLControllerManager.java | 37 +++++++++---------- 1 file changed, 17 insertions(+), 20 deletions(-) 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 782a92edef4b3..6c5623d27d87b 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 @@ -36,27 +36,24 @@ public static native void onNativeHat(int device_id, int hat_id, private static final String TAG = "SDLControllerManager"; 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 @@ public float getEventY(MotionEvent event) { // Relative mouse in capture mode will only have relative for X/Y return event.getY(0); } -} +} \ No newline at end of file