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
This commit is contained in:
Sam Lantinga 2015-06-16 23:58:09 -07:00
parent 33ed20fafa
commit 5db002bb1e

View File

@ -1496,7 +1496,13 @@ class SDLJoystickHandler_API12 extends SDLJoystickHandler {
if (joystick == null) { if (joystick == null) {
joystick = new SDLJoystick(); joystick = new SDLJoystick();
InputDevice joystickDevice = InputDevice.getDevice(deviceIds[i]); 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.device_id = deviceIds[i];
joystick.name = joystickDevice.getName(); joystick.name = joystickDevice.getName();
joystick.axes = new ArrayList<InputDevice.MotionRange>(); joystick.axes = new ArrayList<InputDevice.MotionRange>();