summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-01-25 01:21:30 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-01-25 01:21:30 +0000
commit0142ba6dfa25b31a6d13f4db15baaf86f2839a31 (patch)
treecf2bbf5f7e51eb9459b8317d8d521923abc1f4e7
parent96ca7aff5523585ade17fafc50fef97498302ba8 (diff)
parent6af89df8008b14a77ff4d055cd5de0bebc52f773 (diff)
Merge "Merge "Add hover event handling to new touch architecture" into tm-qpr-dev am: f8832235db am: fb9ff85c3b"
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessor.kt7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessorTest.kt81
2 files changed, 79 insertions, 9 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessor.kt b/packages/SystemUI/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessor.kt
index 3a01cd502929..39ea9368dacb 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessor.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessor.kt
@@ -54,9 +54,12 @@ class SinglePointerTouchProcessor @Inject constructor(val overlapDetector: Overl
return when (event.actionMasked) {
MotionEvent.ACTION_DOWN,
MotionEvent.ACTION_POINTER_DOWN,
- MotionEvent.ACTION_MOVE -> processActionMove(preprocess())
+ MotionEvent.ACTION_MOVE,
+ MotionEvent.ACTION_HOVER_ENTER,
+ MotionEvent.ACTION_HOVER_MOVE -> processActionMove(preprocess())
MotionEvent.ACTION_UP,
- MotionEvent.ACTION_POINTER_UP ->
+ MotionEvent.ACTION_POINTER_UP,
+ MotionEvent.ACTION_HOVER_EXIT ->
processActionUp(preprocess(), event.getPointerId(event.actionIndex))
MotionEvent.ACTION_CANCEL -> processActionCancel(NormalizedTouchData())
else ->
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessorTest.kt
index 34ddf795c7e7..8e20303fd189 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/udfps/SinglePointerTouchProcessorTest.kt
@@ -110,6 +110,28 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
expectedInteractionEvent = InteractionEvent.UP,
expectedPointerOnSensorId = INVALID_POINTER_ID,
),
+ // MotionEvent.ACTION_HOVER_ENTER
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_ENTER,
+ previousPointerOnSensorId = INVALID_POINTER_ID,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = true)),
+ expectedInteractionEvent = InteractionEvent.DOWN,
+ expectedPointerOnSensorId = POINTER_ID_1,
+ ),
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_ENTER,
+ previousPointerOnSensorId = INVALID_POINTER_ID,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = false)),
+ expectedInteractionEvent = InteractionEvent.UNCHANGED,
+ expectedPointerOnSensorId = INVALID_POINTER_ID,
+ ),
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_ENTER,
+ previousPointerOnSensorId = POINTER_ID_1,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = false)),
+ expectedInteractionEvent = InteractionEvent.UP,
+ expectedPointerOnSensorId = INVALID_POINTER_ID,
+ ),
// MotionEvent.ACTION_MOVE
genPositiveTestCases(
motionEventAction = MotionEvent.ACTION_MOVE,
@@ -161,6 +183,35 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
expectedInteractionEvent = InteractionEvent.UNCHANGED,
expectedPointerOnSensorId = POINTER_ID_2,
),
+ // MotionEvent.ACTION_HOVER_MOVE
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_MOVE,
+ previousPointerOnSensorId = INVALID_POINTER_ID,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = true)),
+ expectedInteractionEvent = InteractionEvent.DOWN,
+ expectedPointerOnSensorId = POINTER_ID_1,
+ ),
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_MOVE,
+ previousPointerOnSensorId = POINTER_ID_1,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = true)),
+ expectedInteractionEvent = InteractionEvent.UNCHANGED,
+ expectedPointerOnSensorId = POINTER_ID_1,
+ ),
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_MOVE,
+ previousPointerOnSensorId = INVALID_POINTER_ID,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = false)),
+ expectedInteractionEvent = InteractionEvent.UNCHANGED,
+ expectedPointerOnSensorId = INVALID_POINTER_ID,
+ ),
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_MOVE,
+ previousPointerOnSensorId = POINTER_ID_1,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = false)),
+ expectedInteractionEvent = InteractionEvent.UP,
+ expectedPointerOnSensorId = INVALID_POINTER_ID,
+ ),
// MotionEvent.ACTION_UP
genPositiveTestCases(
motionEventAction = MotionEvent.ACTION_UP,
@@ -183,6 +234,28 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
expectedInteractionEvent = InteractionEvent.UNCHANGED,
expectedPointerOnSensorId = INVALID_POINTER_ID,
),
+ // MotionEvent.ACTION_HOVER_EXIT
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_EXIT,
+ previousPointerOnSensorId = INVALID_POINTER_ID,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = true)),
+ expectedInteractionEvent = InteractionEvent.UP,
+ expectedPointerOnSensorId = INVALID_POINTER_ID,
+ ),
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_EXIT,
+ previousPointerOnSensorId = POINTER_ID_1,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = true)),
+ expectedInteractionEvent = InteractionEvent.UP,
+ expectedPointerOnSensorId = INVALID_POINTER_ID,
+ ),
+ genPositiveTestCases(
+ motionEventAction = MotionEvent.ACTION_HOVER_EXIT,
+ previousPointerOnSensorId = INVALID_POINTER_ID,
+ currentPointers = listOf(TestPointer(id = POINTER_ID_1, onSensor = false)),
+ expectedInteractionEvent = InteractionEvent.UNCHANGED,
+ expectedPointerOnSensorId = INVALID_POINTER_ID,
+ ),
// MotionEvent.ACTION_CANCEL
genPositiveTestCases(
motionEventAction = MotionEvent.ACTION_CANCEL,
@@ -315,13 +388,7 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
expectedPointerOnSensorId = POINTER_ID_2
)
)
- .flatten() +
- listOf(
- genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_ENTER),
- genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_MOVE),
- genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_EXIT)
- )
- .flatten()
+ .flatten()
}
}