Merge "Merge "Add hover event handling to new touch architecture" into tm-qpr-dev am: f8832235db am: fb9ff85c3b"

This commit is contained in:
Automerger Merge Worker
2023-01-25 01:21:30 +00:00
committed by Android (Google) Code Review
2 changed files with 79 additions and 9 deletions

View File

@@ -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 ->

View File

@@ -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()
}
}