diff --git a/app/src/main/java/com/limelight/binding/input/ControllerHandler.java b/app/src/main/java/com/limelight/binding/input/ControllerHandler.java index 9081f5c4..02828e54 100644 --- a/app/src/main/java/com/limelight/binding/input/ControllerHandler.java +++ b/app/src/main/java/com/limelight/binding/input/ControllerHandler.java @@ -215,9 +215,10 @@ public class ControllerHandler implements InputManager.InputDeviceListener, UsbD if (PreferenceConfiguration.readPreferences(context).usbDriver) { UsbManager usbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE); for (UsbDevice dev : usbManager.getDeviceList().values()) { - // We explicitly ask not to claim devices that appear as InputDevices + // We explicitly check not to claim devices that appear as InputDevices // otherwise we will double count them. - if (UsbDriverService.shouldClaimDevice(dev, false)) { + if (UsbDriverService.shouldClaimDevice(dev, false) && + !UsbDriverService.isRecognizedInputDevice(dev)) { LimeLog.info("Counting UsbDevice: "+dev.getDeviceName()); mask |= 1 << count++; } diff --git a/app/src/main/java/com/limelight/binding/input/driver/UsbDriverService.java b/app/src/main/java/com/limelight/binding/input/driver/UsbDriverService.java index 62ce0011..45ea986b 100644 --- a/app/src/main/java/com/limelight/binding/input/driver/UsbDriverService.java +++ b/app/src/main/java/com/limelight/binding/input/driver/UsbDriverService.java @@ -166,7 +166,7 @@ public class UsbDriverService extends Service implements UsbDriverListener { } } - private static boolean isRecognizedInputDevice(UsbDevice device) { + public static boolean isRecognizedInputDevice(UsbDevice device) { // On KitKat and later, we can determine if this VID and PID combo // matches an existing input device and defer to the built-in controller // support in that case. Prior to KitKat, we'll always return true to be safe.