Chromium Code Reviews| Index: ui/android/java/src/org/chromium/ui/base/TouchDevice.java |
| diff --git a/ui/android/java/src/org/chromium/ui/base/TouchDevice.java b/ui/android/java/src/org/chromium/ui/base/TouchDevice.java |
| index 6801655c25e727c4e4654999450e26f046e59a04..e22aca5fc691fef37b03cfa69ae073fe483b4465 100644 |
| --- a/ui/android/java/src/org/chromium/ui/base/TouchDevice.java |
| +++ b/ui/android/java/src/org/chromium/ui/base/TouchDevice.java |
| @@ -6,6 +6,7 @@ package org.chromium.ui.base; |
| import android.content.Context; |
| import android.content.pm.PackageManager; |
| +import android.view.InputDevice; |
| import org.chromium.base.CalledByNative; |
| import org.chromium.base.JNINamespace; |
| @@ -22,8 +23,6 @@ public class TouchDevice { |
| private TouchDevice() { } |
| /** |
| - * Returns the number of supported touch points. |
| - * |
| * @return Maximum supported touch points. |
| */ |
| @CalledByNative |
| @@ -32,6 +31,7 @@ public class TouchDevice { |
| // which only guarantees a minimum number of touch points. Be |
| // conservative and return the minimum, checking membership from the |
| // highest class down. |
| + |
| if (context.getPackageManager().hasSystemFeature( |
| PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND)) { |
| return 5; |
| @@ -48,4 +48,50 @@ public class TouchDevice { |
| return 0; |
| } |
| } |
| + |
| + /** |
| + * TODO |
| + */ |
| + public enum PointerType { |
| + None(1), Coarse(2), Fine(4); |
| + |
| + private int mValue; |
| + |
| + private PointerType(int value) { |
| + mValue = value; |
| + } |
| + |
| + public int getValue() { |
| + return mValue; |
| + } |
| + } |
| + |
| + /** |
| + * @return TODO |
| + */ |
| + @CalledByNative |
| + private static int availablePointerTypes(Context context) { |
| + int pointerTypesVal = 0; |
| + |
| + for (int deviceId : InputDevice.getDeviceIds()) { |
| + int sources = InputDevice.getDevice(deviceId).getSources(); |
| + |
| + if (hasSource(sources, InputDevice.SOURCE_JOYSTICK) |
|
bokan
2014/11/03 14:28:10
Is there a cursor associated with a joystick? I've
mustaq
2014/11/03 17:11:38
I was considering an old PC-based game I played lo
|
| + || hasSource(sources, InputDevice.SOURCE_MOUSE) |
| + || hasSource(sources, InputDevice.SOURCE_STYLUS) |
| + || hasSource(sources, InputDevice.SOURCE_TRACKBALL)) { |
| + pointerTypesVal |= PointerType.Fine.getValue(); |
| + |
| + } else if (hasSource(sources, InputDevice.SOURCE_CLASS_POINTER)) { |
| + pointerTypesVal |= PointerType.Coarse.getValue(); |
| + |
| + } |
| + } |
| + |
| + return pointerTypesVal; |
| + } |
| + |
| + private static boolean hasSource(int sources, int inputDeviceSource) { |
| + return (sources & inputDeviceSource) == inputDeviceSource; |
| + } |
| } |