Merge changes Ib9b04f7e,I8204e903 into main
* changes:
KeyEvent: Add IntDef annotations for action, meta state, and flag
MotionEvent: Add IntDef annotations for action, flag, axis, and button
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index 154f1fe..01015ea 100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -20,6 +20,7 @@
import static android.view.Display.INVALID_DISPLAY;
import android.annotation.FlaggedApi;
+import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.TestApi;
@@ -35,6 +36,8 @@
import com.android.hardware.input.Flags;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.util.concurrent.TimeUnit;
/**
@@ -944,7 +947,7 @@
@FlaggedApi(Flags.FLAG_EMOJI_AND_SCREENSHOT_KEYCODES_AVAILABLE)
public static final int KEYCODE_SCREENSHOT = 318;
- /**
+ /**
* Integer value of the last KEYCODE. Increases as new keycodes are added to KeyEvent.
* @hide
*/
@@ -1034,6 +1037,15 @@
@Deprecated
public static final int ACTION_MULTIPLE = 2;
+ /** @hide */
+ @IntDef(prefix = {"ACTION_"}, value = {
+ ACTION_DOWN,
+ ACTION_UP,
+ ACTION_MULTIPLE,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface Action {}
+
/**
* SHIFT key locked in CAPS mode.
* Reserved for use by {@link MetaKeyKeyListener} for a published constant in its API.
@@ -1222,6 +1234,33 @@
*/
public static final int META_SCROLL_LOCK_ON = 0x400000;
+ /** @hide */
+ @IntDef(flag = true, prefix = {"META_"}, value = {
+ META_CAP_LOCKED,
+ META_ALT_LOCKED,
+ META_SYM_LOCKED,
+ META_SELECTING,
+ META_ALT_ON,
+ META_ALT_LEFT_ON,
+ META_ALT_RIGHT_ON,
+ META_SHIFT_ON,
+ META_SHIFT_LEFT_ON,
+ META_SHIFT_RIGHT_ON,
+ META_SYM_ON,
+ META_FUNCTION_ON,
+ META_CTRL_ON,
+ META_CTRL_LEFT_ON,
+ META_CTRL_RIGHT_ON,
+ META_META_ON,
+ META_META_LEFT_ON,
+ META_META_RIGHT_ON,
+ META_CAPS_LOCK_ON,
+ META_NUM_LOCK_ON,
+ META_SCROLL_LOCK_ON,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface MetaState {}
+
/**
* This mask is a combination of {@link #META_SHIFT_ON}, {@link #META_SHIFT_LEFT_ON}
* and {@link #META_SHIFT_RIGHT_ON}.
@@ -1366,6 +1405,27 @@
*/
public static final int FLAG_TAINTED = IInputConstants.INPUT_EVENT_FLAG_TAINTED;
+ /** @hide */
+ @IntDef(flag = true, prefix = { "FLAG_" }, value = {
+ FLAG_WOKE_HERE,
+ FLAG_SOFT_KEYBOARD,
+ FLAG_KEEP_TOUCH_MODE,
+ FLAG_FROM_SYSTEM,
+ FLAG_EDITOR_ACTION,
+ FLAG_CANCELED,
+ FLAG_VIRTUAL_HARD_KEY,
+ FLAG_LONG_PRESS,
+ FLAG_CANCELED_LONG_PRESS,
+ FLAG_TRACKING,
+ FLAG_FALLBACK,
+ FLAG_IS_ACCESSIBILITY_EVENT,
+ FLAG_PREDISPATCH,
+ FLAG_START_TRACKING,
+ FLAG_TAINTED,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface Flag {}
+
/**
* Returns the maximum keycode.
*/
@@ -1401,8 +1461,10 @@
// NOTE: mHmac is private and not used in this class, but it's used on native side / parcel.
private @Nullable byte[] mHmac;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @MetaState
private int mMetaState;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
+ @Action
private int mAction;
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private int mKeyCode;
@@ -1411,6 +1473,7 @@
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private int mRepeatCount;
@UnsupportedAppUsage
+ @Flag
private int mFlags;
/**
* The time when the key initially was pressed, in nanoseconds. Only millisecond precision is
diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java
index 38f9a91..6db40bf 100644
--- a/core/java/android/view/MotionEvent.java
+++ b/core/java/android/view/MotionEvent.java
@@ -50,6 +50,7 @@
import dalvik.annotation.optimization.FastNative;
import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.util.Objects;
/**
@@ -445,6 +446,25 @@
@Deprecated
public static final int ACTION_POINTER_ID_SHIFT = 8;
+ /** @hide */
+ @IntDef(prefix = { "ACTION_" }, value = {
+ ACTION_DOWN,
+ ACTION_UP,
+ ACTION_MOVE,
+ ACTION_CANCEL,
+ ACTION_OUTSIDE,
+ ACTION_POINTER_DOWN,
+ ACTION_POINTER_UP,
+ ACTION_HOVER_MOVE,
+ ACTION_SCROLL,
+ ACTION_HOVER_ENTER,
+ ACTION_HOVER_EXIT,
+ ACTION_BUTTON_PRESS,
+ ACTION_BUTTON_RELEASE,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface ActionMasked {}
+
/**
* This flag indicates that the window that received this motion event is partly
* or wholly obscured by another visible window above it and the event directly passed through
@@ -548,6 +568,21 @@
public static final int FLAG_TARGET_ACCESSIBILITY_FOCUS =
MOTION_EVENT_FLAG_TARGET_ACCESSIBILITY_FOCUS;
+ /** @hide */
+ @IntDef(flag = true, prefix = { "FLAG_" }, value = {
+ FLAG_WINDOW_IS_OBSCURED,
+ FLAG_WINDOW_IS_PARTIALLY_OBSCURED,
+ FLAG_HOVER_EXIT_PENDING,
+ FLAG_IS_GENERATED_GESTURE,
+ FLAG_CANCELED,
+ FLAG_NO_FOCUS_CHANGE,
+ FLAG_IS_ACCESSIBILITY_EVENT,
+ FLAG_TAINTED,
+ FLAG_TARGET_ACCESSIBILITY_FOCUS,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface Flag {}
+
/**
* Flag indicating the motion event intersected the top edge of the screen.
*/
@@ -1422,6 +1457,63 @@
names.append(AXIS_GESTURE_SWIPE_FINGER_COUNT, "AXIS_GESTURE_SWIPE_FINGER_COUNT");
}
+ /** @hide */
+ @IntDef(prefix = { "AXIS_" }, value = {
+ AXIS_X,
+ AXIS_Y,
+ AXIS_PRESSURE,
+ AXIS_SIZE,
+ AXIS_TOUCH_MAJOR,
+ AXIS_TOUCH_MINOR,
+ AXIS_TOOL_MAJOR,
+ AXIS_TOOL_MINOR,
+ AXIS_ORIENTATION,
+ AXIS_VSCROLL,
+ AXIS_HSCROLL,
+ AXIS_Z,
+ AXIS_RX,
+ AXIS_RY,
+ AXIS_RZ,
+ AXIS_HAT_X,
+ AXIS_HAT_Y,
+ AXIS_LTRIGGER,
+ AXIS_RTRIGGER,
+ AXIS_THROTTLE,
+ AXIS_RUDDER,
+ AXIS_WHEEL,
+ AXIS_GAS,
+ AXIS_BRAKE,
+ AXIS_DISTANCE,
+ AXIS_TILT,
+ AXIS_SCROLL,
+ AXIS_RELATIVE_X,
+ AXIS_RELATIVE_Y,
+ AXIS_GENERIC_1,
+ AXIS_GENERIC_2,
+ AXIS_GENERIC_3,
+ AXIS_GENERIC_4,
+ AXIS_GENERIC_5,
+ AXIS_GENERIC_6,
+ AXIS_GENERIC_7,
+ AXIS_GENERIC_8,
+ AXIS_GENERIC_9,
+ AXIS_GENERIC_10,
+ AXIS_GENERIC_11,
+ AXIS_GENERIC_12,
+ AXIS_GENERIC_13,
+ AXIS_GENERIC_14,
+ AXIS_GENERIC_15,
+ AXIS_GENERIC_16,
+ AXIS_GESTURE_X_OFFSET,
+ AXIS_GESTURE_Y_OFFSET,
+ AXIS_GESTURE_SCROLL_X_DISTANCE,
+ AXIS_GESTURE_SCROLL_Y_DISTANCE,
+ AXIS_GESTURE_PINCH_SCALE_FACTOR,
+ AXIS_GESTURE_SWIPE_FINGER_COUNT,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface Axis {}
+
/**
* Button constant: Primary button (left mouse button).
*
@@ -1522,6 +1614,19 @@
"0x80000000",
};
+ /** @hide */
+ @IntDef(flag = true, prefix = { "BUTTON_" }, value = {
+ BUTTON_PRIMARY,
+ BUTTON_SECONDARY,
+ BUTTON_TERTIARY,
+ BUTTON_BACK,
+ BUTTON_FORWARD,
+ BUTTON_STYLUS_PRIMARY,
+ BUTTON_STYLUS_SECONDARY,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface Button {}
+
/**
* Classification constant: None.
*