From 6cfe949d737af7c93d1412a0f79df1ff0024d837 Mon Sep 17 00:00:00 2001 From: Harry Cutts Date: Wed, 17 May 2023 15:40:26 +0000 Subject: [PATCH] MotionEvent: add AXIS_GESTURE_SWIPE_FINGER_COUNT Bug: 283093437 Test: atest inputflinger_tests:GestureConverterTest Test: modify InputDispatcher to send multi-finger swipes to apps too, then check reported values in a test app Change-Id: I4cc7ea0c9adb641ba5b3bd791bbb48fd896551ab --- core/java/android/view/MotionEvent.java | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java index 1af8ca2efe11b..c703af5af4e6a 100644 --- a/core/java/android/view/MotionEvent.java +++ b/core/java/android/view/MotionEvent.java @@ -1285,6 +1285,8 @@ public final class MotionEvent extends InputEvent implements Parcelable { * * These values are relative to the state from the last event, not accumulated, so developers * should make sure to process this axis value for all batched historical events. + *

+ * This axis is only set on the first pointer in a motion event. */ public static final int AXIS_GESTURE_X_OFFSET = 48; @@ -1304,6 +1306,8 @@ public final class MotionEvent extends InputEvent implements Parcelable { * * These values are relative to the state from the last event, not accumulated, so developers * should make sure to process this axis value for all batched historical events. + *

+ * This axis is only set on the first pointer in a motion event. */ public static final int AXIS_GESTURE_SCROLL_X_DISTANCE = 50; @@ -1324,14 +1328,29 @@ public final class MotionEvent extends InputEvent implements Parcelable { * * These values are relative to the state from the last event, not accumulated, so developers * should make sure to process this axis value for all batched historical events. + *

+ * This axis is only set on the first pointer in a motion event. */ public static final int AXIS_GESTURE_PINCH_SCALE_FACTOR = 52; + /** + * Axis constant: the number of fingers being used in a multi-finger swipe gesture. + *

+ *

+ *

+ * Since CLASSIFICATION_MULTI_FINGER_SWIPE is a hidden API, so is this axis. It is only set on + * the first pointer in a motion event. + * @hide + */ + public static final int AXIS_GESTURE_SWIPE_FINGER_COUNT = 53; + // NOTE: If you add a new axis here you must also add it to: // frameworks/native/include/android/input.h // frameworks/native/libs/input/InputEventLabels.cpp - // platform/cts/tests/tests/view/src/android/view/cts/MotionEventTest.java - // (testAxisFromToString) + // cts/tests/tests/view/src/android/view/cts/MotionEventTest.java (testAxisFromToString) // Symbolic names of all axes. private static final SparseArray AXIS_SYMBOLIC_NAMES = new SparseArray(); @@ -1387,6 +1406,7 @@ public final class MotionEvent extends InputEvent implements Parcelable { names.append(AXIS_GESTURE_SCROLL_X_DISTANCE, "AXIS_GESTURE_SCROLL_X_DISTANCE"); names.append(AXIS_GESTURE_SCROLL_Y_DISTANCE, "AXIS_GESTURE_SCROLL_Y_DISTANCE"); names.append(AXIS_GESTURE_PINCH_SCALE_FACTOR, "AXIS_GESTURE_PINCH_SCALE_FACTOR"); + names.append(AXIS_GESTURE_SWIPE_FINGER_COUNT, "AXIS_GESTURE_SWIPE_FINGER_COUNT"); } /**