summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/current.txt1
-rw-r--r--api/system-current.txt1
-rw-r--r--core/java/android/view/InputDevice.java29
3 files changed, 31 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt
index aa07a97..bf2f9cb 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -34800,6 +34800,7 @@ package android.view {
field public static final deprecated int MOTION_RANGE_X = 0; // 0x0
field public static final deprecated int MOTION_RANGE_Y = 1; // 0x1
field public static final int SOURCE_ANY = -256; // 0xffffff00
+ field public static final int SOURCE_BLUETOOTH_STYLUS = 49154; // 0xc002
field public static final int SOURCE_CLASS_BUTTON = 1; // 0x1
field public static final int SOURCE_CLASS_JOYSTICK = 16; // 0x10
field public static final int SOURCE_CLASS_MASK = 255; // 0xff
diff --git a/api/system-current.txt b/api/system-current.txt
index a245a3e..63f9b74 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -37081,6 +37081,7 @@ package android.view {
field public static final deprecated int MOTION_RANGE_X = 0; // 0x0
field public static final deprecated int MOTION_RANGE_Y = 1; // 0x1
field public static final int SOURCE_ANY = -256; // 0xffffff00
+ field public static final int SOURCE_BLUETOOTH_STYLUS = 49154; // 0xc002
field public static final int SOURCE_CLASS_BUTTON = 1; // 0x1
field public static final int SOURCE_CLASS_JOYSTICK = 16; // 0x10
field public static final int SOURCE_CLASS_MASK = 255; // 0xff
diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java
index f39d1f5..cc4598d 100644
--- a/core/java/android/view/InputDevice.java
+++ b/core/java/android/view/InputDevice.java
@@ -201,6 +201,35 @@ public final class InputDevice implements Parcelable {
public static final int SOURCE_STYLUS = 0x00004000 | SOURCE_CLASS_POINTER;
/**
+ * The input device is a Bluetooth stylus.
+ * <p>
+ * Note that this bit merely indicates that an input device is capable of
+ * obtaining input from a Bluetooth stylus. To determine whether a given
+ * touch event was produced by a stylus, examine the tool type returned by
+ * {@link MotionEvent#getToolType(int)} for each individual pointer.
+ * </p><p>
+ * A single touch event may multiple pointers with different tool types,
+ * such as an event that has one pointer with tool type
+ * {@link MotionEvent#TOOL_TYPE_FINGER} and another pointer with tool type
+ * {@link MotionEvent#TOOL_TYPE_STYLUS}. So it is important to examine
+ * the tool type of each pointer, regardless of the source reported
+ * by {@link MotionEvent#getSource()}.
+ * </p><p>
+ * A bluetooth stylus generally receives its pressure and button state
+ * information from the stylus itself, and derives the rest from another
+ * source. For example, a Bluetooth stylus used in conjunction with a
+ * touchscreen would derive its contact position and pointer size from the
+ * touchscreen and may not be any more accurate than other tools such as
+ * fingers.
+ * </p>
+ *
+ * @see #SOURCE_STYLUS
+ * @see #SOURCE_CLASS_POINTER
+ */
+ public static final int SOURCE_BLUETOOTH_STYLUS =
+ 0x00008000 | SOURCE_STYLUS;
+
+ /**
* The input source is a trackball.
*
* @see #SOURCE_CLASS_TRACKBALL