Merge "Support BTN_TOOL_*TAP as synonyms for BTN_TOOL_FINGER. Bug: 5205301"
This commit is contained in:
@@ -1220,6 +1220,9 @@ void TouchButtonAccumulator::reset(InputDevice* device) {
|
||||
mBtnToolAirbrush = device->isKeyPressed(BTN_TOOL_AIRBRUSH);
|
||||
mBtnToolMouse = device->isKeyPressed(BTN_TOOL_MOUSE);
|
||||
mBtnToolLens = device->isKeyPressed(BTN_TOOL_LENS);
|
||||
mBtnToolDoubleTap = device->isKeyPressed(BTN_TOOL_DOUBLETAP);
|
||||
mBtnToolTripleTap = device->isKeyPressed(BTN_TOOL_TRIPLETAP);
|
||||
mBtnToolQuadTap = device->isKeyPressed(BTN_TOOL_QUADTAP);
|
||||
}
|
||||
|
||||
void TouchButtonAccumulator::clearButtons() {
|
||||
@@ -1234,6 +1237,9 @@ void TouchButtonAccumulator::clearButtons() {
|
||||
mBtnToolAirbrush = 0;
|
||||
mBtnToolMouse = 0;
|
||||
mBtnToolLens = 0;
|
||||
mBtnToolDoubleTap = 0;
|
||||
mBtnToolTripleTap = 0;
|
||||
mBtnToolQuadTap = 0;
|
||||
}
|
||||
|
||||
void TouchButtonAccumulator::process(const RawEvent* rawEvent) {
|
||||
@@ -1272,6 +1278,15 @@ void TouchButtonAccumulator::process(const RawEvent* rawEvent) {
|
||||
case BTN_TOOL_LENS:
|
||||
mBtnToolLens = rawEvent->value;
|
||||
break;
|
||||
case BTN_TOOL_DOUBLETAP:
|
||||
mBtnToolDoubleTap = rawEvent->value;
|
||||
break;
|
||||
case BTN_TOOL_TRIPLETAP:
|
||||
mBtnToolTripleTap = rawEvent->value;
|
||||
break;
|
||||
case BTN_TOOL_QUADTAP:
|
||||
mBtnToolQuadTap = rawEvent->value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1297,7 +1312,7 @@ int32_t TouchButtonAccumulator::getToolType() const {
|
||||
if (mBtnToolPen || mBtnToolBrush || mBtnToolPencil || mBtnToolAirbrush) {
|
||||
return AMOTION_EVENT_TOOL_TYPE_STYLUS;
|
||||
}
|
||||
if (mBtnToolFinger) {
|
||||
if (mBtnToolFinger || mBtnToolDoubleTap || mBtnToolTripleTap || mBtnToolQuadTap) {
|
||||
return AMOTION_EVENT_TOOL_TYPE_FINGER;
|
||||
}
|
||||
return AMOTION_EVENT_TOOL_TYPE_UNKNOWN;
|
||||
@@ -1306,7 +1321,8 @@ int32_t TouchButtonAccumulator::getToolType() const {
|
||||
bool TouchButtonAccumulator::isToolActive() const {
|
||||
return mBtnTouch || mBtnToolFinger || mBtnToolPen || mBtnToolRubber
|
||||
|| mBtnToolBrush || mBtnToolPencil || mBtnToolAirbrush
|
||||
|| mBtnToolMouse || mBtnToolLens;
|
||||
|| mBtnToolMouse || mBtnToolLens
|
||||
|| mBtnToolDoubleTap || mBtnToolTripleTap || mBtnToolQuadTap;
|
||||
}
|
||||
|
||||
bool TouchButtonAccumulator::isHovering() const {
|
||||
|
||||
@@ -596,6 +596,9 @@ private:
|
||||
bool mBtnToolAirbrush;
|
||||
bool mBtnToolMouse;
|
||||
bool mBtnToolLens;
|
||||
bool mBtnToolDoubleTap;
|
||||
bool mBtnToolTripleTap;
|
||||
bool mBtnToolQuadTap;
|
||||
|
||||
void clearButtons();
|
||||
};
|
||||
|
||||
@@ -3377,8 +3377,32 @@ TEST_F(SingleTouchInputMapperTest, Process_ShouldHandleAllToolTypes) {
|
||||
ASSERT_EQ(AMOTION_EVENT_ACTION_MOVE, motionArgs.action);
|
||||
ASSERT_EQ(AMOTION_EVENT_TOOL_TYPE_MOUSE, motionArgs.pointerProperties[0].toolType);
|
||||
|
||||
// finger
|
||||
// double-tap
|
||||
processKey(mapper, BTN_TOOL_LENS, 0);
|
||||
processKey(mapper, BTN_TOOL_DOUBLETAP, 1);
|
||||
processSync(mapper);
|
||||
ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs));
|
||||
ASSERT_EQ(AMOTION_EVENT_ACTION_MOVE, motionArgs.action);
|
||||
ASSERT_EQ(AMOTION_EVENT_TOOL_TYPE_FINGER, motionArgs.pointerProperties[0].toolType);
|
||||
|
||||
// triple-tap
|
||||
processKey(mapper, BTN_TOOL_DOUBLETAP, 0);
|
||||
processKey(mapper, BTN_TOOL_TRIPLETAP, 1);
|
||||
processSync(mapper);
|
||||
ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs));
|
||||
ASSERT_EQ(AMOTION_EVENT_ACTION_MOVE, motionArgs.action);
|
||||
ASSERT_EQ(AMOTION_EVENT_TOOL_TYPE_FINGER, motionArgs.pointerProperties[0].toolType);
|
||||
|
||||
// quad-tap
|
||||
processKey(mapper, BTN_TOOL_TRIPLETAP, 0);
|
||||
processKey(mapper, BTN_TOOL_QUADTAP, 1);
|
||||
processSync(mapper);
|
||||
ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs));
|
||||
ASSERT_EQ(AMOTION_EVENT_ACTION_MOVE, motionArgs.action);
|
||||
ASSERT_EQ(AMOTION_EVENT_TOOL_TYPE_FINGER, motionArgs.pointerProperties[0].toolType);
|
||||
|
||||
// finger
|
||||
processKey(mapper, BTN_TOOL_QUADTAP, 0);
|
||||
processKey(mapper, BTN_TOOL_FINGER, 1);
|
||||
processSync(mapper);
|
||||
ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs));
|
||||
@@ -4766,8 +4790,32 @@ TEST_F(MultiTouchInputMapperTest, Process_ShouldHandleAllToolTypes) {
|
||||
ASSERT_EQ(AMOTION_EVENT_ACTION_MOVE, motionArgs.action);
|
||||
ASSERT_EQ(AMOTION_EVENT_TOOL_TYPE_MOUSE, motionArgs.pointerProperties[0].toolType);
|
||||
|
||||
// finger
|
||||
// double-tap
|
||||
processKey(mapper, BTN_TOOL_LENS, 0);
|
||||
processKey(mapper, BTN_TOOL_DOUBLETAP, 1);
|
||||
processSync(mapper);
|
||||
ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs));
|
||||
ASSERT_EQ(AMOTION_EVENT_ACTION_MOVE, motionArgs.action);
|
||||
ASSERT_EQ(AMOTION_EVENT_TOOL_TYPE_FINGER, motionArgs.pointerProperties[0].toolType);
|
||||
|
||||
// triple-tap
|
||||
processKey(mapper, BTN_TOOL_DOUBLETAP, 0);
|
||||
processKey(mapper, BTN_TOOL_TRIPLETAP, 1);
|
||||
processSync(mapper);
|
||||
ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs));
|
||||
ASSERT_EQ(AMOTION_EVENT_ACTION_MOVE, motionArgs.action);
|
||||
ASSERT_EQ(AMOTION_EVENT_TOOL_TYPE_FINGER, motionArgs.pointerProperties[0].toolType);
|
||||
|
||||
// quad-tap
|
||||
processKey(mapper, BTN_TOOL_TRIPLETAP, 0);
|
||||
processKey(mapper, BTN_TOOL_QUADTAP, 1);
|
||||
processSync(mapper);
|
||||
ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs));
|
||||
ASSERT_EQ(AMOTION_EVENT_ACTION_MOVE, motionArgs.action);
|
||||
ASSERT_EQ(AMOTION_EVENT_TOOL_TYPE_FINGER, motionArgs.pointerProperties[0].toolType);
|
||||
|
||||
// finger
|
||||
processKey(mapper, BTN_TOOL_QUADTAP, 0);
|
||||
processKey(mapper, BTN_TOOL_FINGER, 1);
|
||||
processSync(mapper);
|
||||
ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs));
|
||||
|
||||
Reference in New Issue
Block a user