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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20900042

Change-Id: I8981facaf7c6600d469296149a63f5ccea4f9d3a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Austin Delgado
2023-01-25 01:13:39 +00:00
committed by Automerger Merge Worker
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) { return when (event.actionMasked) {
MotionEvent.ACTION_DOWN, MotionEvent.ACTION_DOWN,
MotionEvent.ACTION_POINTER_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_UP,
MotionEvent.ACTION_POINTER_UP -> MotionEvent.ACTION_POINTER_UP,
MotionEvent.ACTION_HOVER_EXIT ->
processActionUp(preprocess(), event.getPointerId(event.actionIndex)) processActionUp(preprocess(), event.getPointerId(event.actionIndex))
MotionEvent.ACTION_CANCEL -> processActionCancel(NormalizedTouchData()) MotionEvent.ACTION_CANCEL -> processActionCancel(NormalizedTouchData())
else -> else ->

View File

@@ -110,6 +110,28 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
expectedInteractionEvent = InteractionEvent.UP, expectedInteractionEvent = InteractionEvent.UP,
expectedPointerOnSensorId = INVALID_POINTER_ID, 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 // MotionEvent.ACTION_MOVE
genPositiveTestCases( genPositiveTestCases(
motionEventAction = MotionEvent.ACTION_MOVE, motionEventAction = MotionEvent.ACTION_MOVE,
@@ -161,6 +183,35 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
expectedInteractionEvent = InteractionEvent.UNCHANGED, expectedInteractionEvent = InteractionEvent.UNCHANGED,
expectedPointerOnSensorId = POINTER_ID_2, 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 // MotionEvent.ACTION_UP
genPositiveTestCases( genPositiveTestCases(
motionEventAction = MotionEvent.ACTION_UP, motionEventAction = MotionEvent.ACTION_UP,
@@ -183,6 +234,28 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
expectedInteractionEvent = InteractionEvent.UNCHANGED, expectedInteractionEvent = InteractionEvent.UNCHANGED,
expectedPointerOnSensorId = INVALID_POINTER_ID, 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 // MotionEvent.ACTION_CANCEL
genPositiveTestCases( genPositiveTestCases(
motionEventAction = MotionEvent.ACTION_CANCEL, motionEventAction = MotionEvent.ACTION_CANCEL,
@@ -315,12 +388,6 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
expectedPointerOnSensorId = POINTER_ID_2 expectedPointerOnSensorId = POINTER_ID_2
) )
) )
.flatten() +
listOf(
genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_ENTER),
genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_MOVE),
genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_EXIT)
)
.flatten() .flatten()
} }
} }