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:
@@ -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 ->
|
||||||
|
|||||||
@@ -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,13 +388,7 @@ class SinglePointerTouchProcessorTest(val testCase: TestCase) : SysuiTestCase()
|
|||||||
expectedPointerOnSensorId = POINTER_ID_2
|
expectedPointerOnSensorId = POINTER_ID_2
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.flatten() +
|
.flatten()
|
||||||
listOf(
|
|
||||||
genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_ENTER),
|
|
||||||
genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_MOVE),
|
|
||||||
genTestCasesForUnsupportedAction(MotionEvent.ACTION_HOVER_EXIT)
|
|
||||||
)
|
|
||||||
.flatten()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user