From 5db002bb1ed91a7cd1b1204124041a6d1e6715a1 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 16 Jun 2015 23:58:09 -0700 Subject: [PATCH] Fixed bug 2949 - [Android] Virtual DPAD remote not registered Sylvain I have an android device to which I try to connect the google virtual remote application. https://play.google.com/store/apps/details?id=com.google.android.tv.remote The java method "pollInputDevices()" detects it as an input source 0x701 which is (SOURCE_KEYBOARD | SOURCE_GAMEPAD | SOURCE_DPAD). It it not added because it does not AND-bitwise with "SOURCE_CLASS_JOYSTICK". It's only a virtual DPAD and it works when checking also with SOURCE_CLASS_BUTTON --- android-project/src/org/libsdl/app/SDLActivity.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 4e516528e..8ad878c49 100644 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -1496,7 +1496,13 @@ class SDLJoystickHandler_API12 extends SDLJoystickHandler { if (joystick == null) { joystick = new SDLJoystick(); InputDevice joystickDevice = InputDevice.getDevice(deviceIds[i]); - if( (joystickDevice.getSources() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0) { + + if ( + (joystickDevice.getSources() & InputDevice.SOURCE_CLASS_JOYSTICK) != 0 + || + (joystickDevice.getSources() & InputDevice.SOURCE_CLASS_BUTTON) != 0 + ) + { joystick.device_id = deviceIds[i]; joystick.name = joystickDevice.getName(); joystick.axes = new ArrayList();