Loading services/inputflinger/InputReader.cpp +26 −33 Original line number Diff line number Diff line Loading @@ -2642,7 +2642,6 @@ void CursorInputMapper::configure(nsecs_t when, mOrientation = internalViewport->orientation; } } getPolicy()->updatePointerDisplay(); bumpGeneration(); } } Loading Loading @@ -2788,7 +2787,7 @@ void CursorInputMapper::sync(nsecs_t when) { pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_Y, y); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_RELATIVE_X, deltaX); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_RELATIVE_Y, deltaY); displayId = mPointerController->getDisplayId(); displayId = ADISPLAY_ID_DEFAULT; } else { pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_X, deltaX); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_Y, deltaY); Loading Loading @@ -3609,9 +3608,6 @@ void TouchInputMapper::configureSurface(nsecs_t when, bool* outResetNeeded) { (mDeviceMode == DEVICE_MODE_DIRECT && mConfig.showTouches)) { if (mPointerController == nullptr) { mPointerController = getPolicy()->obtainPointerController(getDeviceId()); getPolicy()->updatePointerDisplay(); } else if (viewportChanged) { getPolicy()->updatePointerDisplay(); } } else { mPointerController.clear(); Loading Loading @@ -5399,9 +5395,9 @@ void TouchInputMapper::dispatchPointerGestures(nsecs_t when, uint32_t policyFlag pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_X, x); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_Y, y); int32_t displayId = mPointerController->getDisplayId(); NotifyMotionArgs args(mContext->getNextSequenceNum(), when, displayId, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_MOVE, 0, 0, NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_MOVE, 0, 0, metaState, buttonState, AMOTION_EVENT_EDGE_FLAG_NONE, /* deviceTimestamp */ 0, 1, &pointerProperties, &pointerCoords, 0, 0, mPointerGesture.downTime); Loading Loading @@ -6307,7 +6303,6 @@ void TouchInputMapper::abortPointerMouse(nsecs_t when, uint32_t policyFlags) { void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, bool down, bool hovering) { int32_t metaState = getContext()->getGlobalMetaState(); int32_t displayId = mViewport.displayId; if (mPointerController != nullptr) { if (down || hovering) { Loading @@ -6318,7 +6313,6 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, } else if (!down && !hovering && (mPointerSimple.down || mPointerSimple.hovering)) { mPointerController->fade(PointerControllerInterface::TRANSITION_GRADUAL); } displayId = mPointerController->getDisplayId(); } if (mPointerSimple.down && !down) { Loading @@ -6326,7 +6320,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send up. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_UP, 0, 0, metaState, mLastRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.lastProperties, &mPointerSimple.lastCoords, Loading @@ -6340,7 +6334,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send hover exit. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_EXIT, 0, 0, metaState, mLastRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.lastProperties, &mPointerSimple.lastCoords, Loading @@ -6356,7 +6350,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send down. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_DOWN, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &mPointerSimple.currentCoords, Loading @@ -6367,7 +6361,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send move. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_MOVE, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &mPointerSimple.currentCoords, Loading @@ -6382,7 +6376,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send hover enter. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_ENTER, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, Loading @@ -6394,7 +6388,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send hover move. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_MOVE, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, Loading @@ -6417,7 +6411,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_HSCROLL, hscroll); NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_SCROLL, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &pointerCoords, Loading Loading @@ -6479,10 +6473,9 @@ void TouchInputMapper::dispatchMotion(nsecs_t when, uint32_t policyFlags, uint32 ALOG_ASSERT(false); } } int32_t displayId = mPointerController != nullptr ? mPointerController->getDisplayId() : mViewport.displayId; NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), source, displayId, policyFlags, source, mViewport.displayId, policyFlags, action, actionButton, flags, metaState, buttonState, edgeFlags, deviceTimestamp, pointerCount, pointerProperties, pointerCoords, xPrecision, yPrecision, downTime); Loading services/inputflinger/include/InputReaderBase.h +0 −3 Original line number Diff line number Diff line Loading @@ -342,9 +342,6 @@ public: /* Gets the affine calibration associated with the specified device. */ virtual TouchAffineTransformation getTouchAffineTransformation( const std::string& inputDeviceDescriptor, int32_t surfaceRotation) = 0; /* Update the pointer controller associated with the specified display. */ virtual void updatePointerDisplay() = 0; }; } // namespace android Loading services/inputflinger/include/PointerControllerInterface.h +0 −3 Original line number Diff line number Diff line Loading @@ -58,9 +58,6 @@ public: /* Gets the absolute location of the pointer. */ virtual void getPosition(float* outX, float* outY) const = 0; /* Gets the id of the display where the pointer should be shown. */ virtual int32_t getDisplayId() const = 0; enum Transition { // Fade/unfade immediately. TRANSITION_IMMEDIATE, Loading services/inputflinger/tests/InputReader_test.cpp +2 −63 Original line number Diff line number Diff line Loading @@ -57,7 +57,6 @@ class FakePointerController : public PointerControllerInterface { float mMinX, mMinY, mMaxX, mMaxY; float mX, mY; int32_t mButtonState; int32_t mDisplayId; protected: virtual ~FakePointerController() { } Loading @@ -65,7 +64,7 @@ protected: public: FakePointerController() : mHaveBounds(false), mMinX(0), mMinY(0), mMaxX(0), mMaxY(0), mX(0), mY(0), mButtonState(0), mDisplayId(ADISPLAY_ID_DEFAULT) { mButtonState(0) { } void setBounds(float minX, float minY, float maxX, float maxY) { Loading @@ -76,10 +75,6 @@ public: mMaxY = maxY; } void setDisplayId(int32_t displayId) { mDisplayId = displayId; } virtual void setPosition(float x, float y) { mX = x; mY = y; Loading @@ -98,10 +93,6 @@ public: *outY = mY; } virtual int32_t getDisplayId() const { return mDisplayId; } private: virtual bool getBounds(float* outMinX, float* outMinY, float* outMaxX, float* outMaxY) const { *outMinX = mMinX; Loading Loading @@ -271,9 +262,6 @@ private: virtual std::string getDeviceAlias(const InputDeviceIdentifier&) { return ""; } virtual void updatePointerDisplay() { } }; Loading Loading @@ -3177,30 +3165,6 @@ TEST_F(CursorInputMapperTest, Process_PointerCapture) { ASSERT_NO_FATAL_FAILURE(assertPosition(mFakePointerController, 110.0f, 220.0f)); } TEST_F(CursorInputMapperTest, Process_ShouldHandleDisplayId) { CursorInputMapper* mapper = new CursorInputMapper(mDevice); addMapperAndConfigure(mapper); // Setup PointerController for second display. constexpr int32_t SECOND_DISPLAY_ID = 1; mFakePointerController->setBounds(0, 0, 800 - 1, 480 - 1); mFakePointerController->setPosition(100, 200); mFakePointerController->setButtonState(0); mFakePointerController->setDisplayId(SECOND_DISPLAY_ID); NotifyMotionArgs args; process(mapper, ARBITRARY_TIME, EV_REL, REL_X, 10); process(mapper, ARBITRARY_TIME, EV_REL, REL_Y, 20); process(mapper, ARBITRARY_TIME, EV_SYN, SYN_REPORT, 0); ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&args)); ASSERT_EQ(AINPUT_SOURCE_MOUSE, args.source); ASSERT_EQ(AMOTION_EVENT_ACTION_HOVER_MOVE, args.action); ASSERT_NO_FATAL_FAILURE(assertPointerCoords(args.pointerCoords[0], 110.0f, 220.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f)); ASSERT_NO_FATAL_FAILURE(assertPosition(mFakePointerController, 110.0f, 220.0f)); ASSERT_EQ(SECOND_DISPLAY_ID, args.displayId); } // --- TouchInputMapperTest --- Loading Loading @@ -4699,6 +4663,7 @@ TEST_F(SingleTouchInputMapperTest, Process_WhenAbsPressureIsPresent_HoversIfItsV toDisplayX(150), toDisplayY(250), 0, 0, 0, 0, 0, 0, 0, 0)); } // --- MultiTouchInputMapperTest --- class MultiTouchInputMapperTest : public TouchInputMapperTest { Loading Loading @@ -6319,30 +6284,4 @@ TEST_F(MultiTouchInputMapperTest, Configure_AssignsDisplayPort) { ASSERT_EQ(DISPLAY_ID, args.displayId); } TEST_F(MultiTouchInputMapperTest, Process_Pointer_ShouldHandleDisplayId) { // Setup PointerController for second display. sp<FakePointerController> fakePointerController = new FakePointerController(); fakePointerController->setBounds(0, 0, 800 - 1, 480 - 1); fakePointerController->setPosition(100, 200); fakePointerController->setButtonState(0); fakePointerController->setDisplayId(SECONDARY_DISPLAY_ID); mFakePolicy->setPointerController(mDevice->getId(), fakePointerController); MultiTouchInputMapper* mapper = new MultiTouchInputMapper(mDevice); prepareDisplay(DISPLAY_ORIENTATION_0); prepareAxes(POSITION); addMapperAndConfigure(mapper); // Check source is mouse that would obtain the PointerController. ASSERT_EQ(AINPUT_SOURCE_MOUSE, mapper->getSources()); NotifyMotionArgs motionArgs; processPosition(mapper, 100, 100); processSync(mapper); ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs)); ASSERT_EQ(AMOTION_EVENT_ACTION_HOVER_MOVE, motionArgs.action); ASSERT_EQ(SECONDARY_DISPLAY_ID, motionArgs.displayId); } } // namespace android Loading
services/inputflinger/InputReader.cpp +26 −33 Original line number Diff line number Diff line Loading @@ -2642,7 +2642,6 @@ void CursorInputMapper::configure(nsecs_t when, mOrientation = internalViewport->orientation; } } getPolicy()->updatePointerDisplay(); bumpGeneration(); } } Loading Loading @@ -2788,7 +2787,7 @@ void CursorInputMapper::sync(nsecs_t when) { pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_Y, y); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_RELATIVE_X, deltaX); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_RELATIVE_Y, deltaY); displayId = mPointerController->getDisplayId(); displayId = ADISPLAY_ID_DEFAULT; } else { pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_X, deltaX); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_Y, deltaY); Loading Loading @@ -3609,9 +3608,6 @@ void TouchInputMapper::configureSurface(nsecs_t when, bool* outResetNeeded) { (mDeviceMode == DEVICE_MODE_DIRECT && mConfig.showTouches)) { if (mPointerController == nullptr) { mPointerController = getPolicy()->obtainPointerController(getDeviceId()); getPolicy()->updatePointerDisplay(); } else if (viewportChanged) { getPolicy()->updatePointerDisplay(); } } else { mPointerController.clear(); Loading Loading @@ -5399,9 +5395,9 @@ void TouchInputMapper::dispatchPointerGestures(nsecs_t when, uint32_t policyFlag pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_X, x); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_Y, y); int32_t displayId = mPointerController->getDisplayId(); NotifyMotionArgs args(mContext->getNextSequenceNum(), when, displayId, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_MOVE, 0, 0, NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_MOVE, 0, 0, metaState, buttonState, AMOTION_EVENT_EDGE_FLAG_NONE, /* deviceTimestamp */ 0, 1, &pointerProperties, &pointerCoords, 0, 0, mPointerGesture.downTime); Loading Loading @@ -6307,7 +6303,6 @@ void TouchInputMapper::abortPointerMouse(nsecs_t when, uint32_t policyFlags) { void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, bool down, bool hovering) { int32_t metaState = getContext()->getGlobalMetaState(); int32_t displayId = mViewport.displayId; if (mPointerController != nullptr) { if (down || hovering) { Loading @@ -6318,7 +6313,6 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, } else if (!down && !hovering && (mPointerSimple.down || mPointerSimple.hovering)) { mPointerController->fade(PointerControllerInterface::TRANSITION_GRADUAL); } displayId = mPointerController->getDisplayId(); } if (mPointerSimple.down && !down) { Loading @@ -6326,7 +6320,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send up. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_UP, 0, 0, metaState, mLastRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.lastProperties, &mPointerSimple.lastCoords, Loading @@ -6340,7 +6334,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send hover exit. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_EXIT, 0, 0, metaState, mLastRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.lastProperties, &mPointerSimple.lastCoords, Loading @@ -6356,7 +6350,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send down. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_DOWN, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &mPointerSimple.currentCoords, Loading @@ -6367,7 +6361,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send move. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_MOVE, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &mPointerSimple.currentCoords, Loading @@ -6382,7 +6376,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send hover enter. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_ENTER, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, Loading @@ -6394,7 +6388,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, // Send hover move. NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_MOVE, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, Loading @@ -6417,7 +6411,7 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_HSCROLL, hscroll); NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), mSource, displayId, policyFlags, mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_SCROLL, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &pointerCoords, Loading Loading @@ -6479,10 +6473,9 @@ void TouchInputMapper::dispatchMotion(nsecs_t when, uint32_t policyFlags, uint32 ALOG_ASSERT(false); } } int32_t displayId = mPointerController != nullptr ? mPointerController->getDisplayId() : mViewport.displayId; NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), source, displayId, policyFlags, source, mViewport.displayId, policyFlags, action, actionButton, flags, metaState, buttonState, edgeFlags, deviceTimestamp, pointerCount, pointerProperties, pointerCoords, xPrecision, yPrecision, downTime); Loading
services/inputflinger/include/InputReaderBase.h +0 −3 Original line number Diff line number Diff line Loading @@ -342,9 +342,6 @@ public: /* Gets the affine calibration associated with the specified device. */ virtual TouchAffineTransformation getTouchAffineTransformation( const std::string& inputDeviceDescriptor, int32_t surfaceRotation) = 0; /* Update the pointer controller associated with the specified display. */ virtual void updatePointerDisplay() = 0; }; } // namespace android Loading
services/inputflinger/include/PointerControllerInterface.h +0 −3 Original line number Diff line number Diff line Loading @@ -58,9 +58,6 @@ public: /* Gets the absolute location of the pointer. */ virtual void getPosition(float* outX, float* outY) const = 0; /* Gets the id of the display where the pointer should be shown. */ virtual int32_t getDisplayId() const = 0; enum Transition { // Fade/unfade immediately. TRANSITION_IMMEDIATE, Loading
services/inputflinger/tests/InputReader_test.cpp +2 −63 Original line number Diff line number Diff line Loading @@ -57,7 +57,6 @@ class FakePointerController : public PointerControllerInterface { float mMinX, mMinY, mMaxX, mMaxY; float mX, mY; int32_t mButtonState; int32_t mDisplayId; protected: virtual ~FakePointerController() { } Loading @@ -65,7 +64,7 @@ protected: public: FakePointerController() : mHaveBounds(false), mMinX(0), mMinY(0), mMaxX(0), mMaxY(0), mX(0), mY(0), mButtonState(0), mDisplayId(ADISPLAY_ID_DEFAULT) { mButtonState(0) { } void setBounds(float minX, float minY, float maxX, float maxY) { Loading @@ -76,10 +75,6 @@ public: mMaxY = maxY; } void setDisplayId(int32_t displayId) { mDisplayId = displayId; } virtual void setPosition(float x, float y) { mX = x; mY = y; Loading @@ -98,10 +93,6 @@ public: *outY = mY; } virtual int32_t getDisplayId() const { return mDisplayId; } private: virtual bool getBounds(float* outMinX, float* outMinY, float* outMaxX, float* outMaxY) const { *outMinX = mMinX; Loading Loading @@ -271,9 +262,6 @@ private: virtual std::string getDeviceAlias(const InputDeviceIdentifier&) { return ""; } virtual void updatePointerDisplay() { } }; Loading Loading @@ -3177,30 +3165,6 @@ TEST_F(CursorInputMapperTest, Process_PointerCapture) { ASSERT_NO_FATAL_FAILURE(assertPosition(mFakePointerController, 110.0f, 220.0f)); } TEST_F(CursorInputMapperTest, Process_ShouldHandleDisplayId) { CursorInputMapper* mapper = new CursorInputMapper(mDevice); addMapperAndConfigure(mapper); // Setup PointerController for second display. constexpr int32_t SECOND_DISPLAY_ID = 1; mFakePointerController->setBounds(0, 0, 800 - 1, 480 - 1); mFakePointerController->setPosition(100, 200); mFakePointerController->setButtonState(0); mFakePointerController->setDisplayId(SECOND_DISPLAY_ID); NotifyMotionArgs args; process(mapper, ARBITRARY_TIME, EV_REL, REL_X, 10); process(mapper, ARBITRARY_TIME, EV_REL, REL_Y, 20); process(mapper, ARBITRARY_TIME, EV_SYN, SYN_REPORT, 0); ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&args)); ASSERT_EQ(AINPUT_SOURCE_MOUSE, args.source); ASSERT_EQ(AMOTION_EVENT_ACTION_HOVER_MOVE, args.action); ASSERT_NO_FATAL_FAILURE(assertPointerCoords(args.pointerCoords[0], 110.0f, 220.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f)); ASSERT_NO_FATAL_FAILURE(assertPosition(mFakePointerController, 110.0f, 220.0f)); ASSERT_EQ(SECOND_DISPLAY_ID, args.displayId); } // --- TouchInputMapperTest --- Loading Loading @@ -4699,6 +4663,7 @@ TEST_F(SingleTouchInputMapperTest, Process_WhenAbsPressureIsPresent_HoversIfItsV toDisplayX(150), toDisplayY(250), 0, 0, 0, 0, 0, 0, 0, 0)); } // --- MultiTouchInputMapperTest --- class MultiTouchInputMapperTest : public TouchInputMapperTest { Loading Loading @@ -6319,30 +6284,4 @@ TEST_F(MultiTouchInputMapperTest, Configure_AssignsDisplayPort) { ASSERT_EQ(DISPLAY_ID, args.displayId); } TEST_F(MultiTouchInputMapperTest, Process_Pointer_ShouldHandleDisplayId) { // Setup PointerController for second display. sp<FakePointerController> fakePointerController = new FakePointerController(); fakePointerController->setBounds(0, 0, 800 - 1, 480 - 1); fakePointerController->setPosition(100, 200); fakePointerController->setButtonState(0); fakePointerController->setDisplayId(SECONDARY_DISPLAY_ID); mFakePolicy->setPointerController(mDevice->getId(), fakePointerController); MultiTouchInputMapper* mapper = new MultiTouchInputMapper(mDevice); prepareDisplay(DISPLAY_ORIENTATION_0); prepareAxes(POSITION); addMapperAndConfigure(mapper); // Check source is mouse that would obtain the PointerController. ASSERT_EQ(AINPUT_SOURCE_MOUSE, mapper->getSources()); NotifyMotionArgs motionArgs; processPosition(mapper, 100, 100); processSync(mapper); ASSERT_NO_FATAL_FAILURE(mFakeListener->assertNotifyMotionWasCalled(&motionArgs)); ASSERT_EQ(AMOTION_EVENT_ACTION_HOVER_MOVE, motionArgs.action); ASSERT_EQ(SECONDARY_DISPLAY_ID, motionArgs.displayId); } } // namespace android