diff options
| -rw-r--r-- | services/inputflinger/InputReader.cpp | 59 | ||||
| -rw-r--r-- | services/inputflinger/include/InputReaderBase.h | 3 | ||||
| -rw-r--r-- | services/inputflinger/include/PointerControllerInterface.h | 3 | ||||
| -rw-r--r-- | services/inputflinger/tests/InputReader_test.cpp | 65 |
4 files changed, 28 insertions, 102 deletions
diff --git a/services/inputflinger/InputReader.cpp b/services/inputflinger/InputReader.cpp index 7e00f420cc..5d0b894dd0 100644 --- a/services/inputflinger/InputReader.cpp +++ b/services/inputflinger/InputReader.cpp @@ -2642,7 +2642,6 @@ void CursorInputMapper::configure(nsecs_t when, mOrientation = internalViewport->orientation; } } - getPolicy()->updatePointerDisplay(); bumpGeneration(); } } @@ -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); @@ -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(); @@ -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); @@ -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) { @@ -6318,20 +6313,19 @@ 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) { mPointerSimple.down = false; // Send up. - NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), - mSource, displayId, policyFlags, - AMOTION_EVENT_ACTION_UP, 0, 0, metaState, mLastRawState.buttonState, 0, - /* deviceTimestamp */ 0, - 1, &mPointerSimple.lastProperties, &mPointerSimple.lastCoords, - mOrientedXPrecision, mOrientedYPrecision, - mPointerSimple.downTime); + NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), + mSource, mViewport.displayId, policyFlags, + AMOTION_EVENT_ACTION_UP, 0, 0, metaState, mLastRawState.buttonState, 0, + /* deviceTimestamp */ 0, + 1, &mPointerSimple.lastProperties, &mPointerSimple.lastCoords, + mOrientedXPrecision, mOrientedYPrecision, + mPointerSimple.downTime); getListener()->notifyMotion(&args); } @@ -6339,8 +6333,8 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, mPointerSimple.hovering = false; // Send hover exit. - NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), - mSource, displayId, policyFlags, + NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), + mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_EXIT, 0, 0, metaState, mLastRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.lastProperties, &mPointerSimple.lastCoords, @@ -6355,8 +6349,8 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, mPointerSimple.downTime = when; // Send down. - NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), - mSource, displayId, policyFlags, + NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), + mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_DOWN, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &mPointerSimple.currentCoords, @@ -6366,8 +6360,8 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, } // Send move. - NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), - mSource, displayId, policyFlags, + NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), + mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_MOVE, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &mPointerSimple.currentCoords, @@ -6381,8 +6375,8 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, mPointerSimple.hovering = true; // Send hover enter. - NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), - mSource, displayId, policyFlags, + NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), + mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_ENTER, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, @@ -6393,8 +6387,8 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, } // Send hover move. - NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), - mSource, displayId, policyFlags, + NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), + mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_HOVER_MOVE, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, @@ -6416,8 +6410,8 @@ void TouchInputMapper::dispatchPointerSimple(nsecs_t when, uint32_t policyFlags, pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_VSCROLL, vscroll); pointerCoords.setAxisValue(AMOTION_EVENT_AXIS_HSCROLL, hscroll); - NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), - mSource, displayId, policyFlags, + NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), + mSource, mViewport.displayId, policyFlags, AMOTION_EVENT_ACTION_SCROLL, 0, 0, metaState, mCurrentRawState.buttonState, 0, /* deviceTimestamp */ 0, 1, &mPointerSimple.currentProperties, &pointerCoords, @@ -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, + + NotifyMotionArgs args(mContext->getNextSequenceNum(), when, getDeviceId(), + source, mViewport.displayId, policyFlags, action, actionButton, flags, metaState, buttonState, edgeFlags, deviceTimestamp, pointerCount, pointerProperties, pointerCoords, xPrecision, yPrecision, downTime); diff --git a/services/inputflinger/include/InputReaderBase.h b/services/inputflinger/include/InputReaderBase.h index 5a78df75ff..fe1c50bc75 100644 --- a/services/inputflinger/include/InputReaderBase.h +++ b/services/inputflinger/include/InputReaderBase.h @@ -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 diff --git a/services/inputflinger/include/PointerControllerInterface.h b/services/inputflinger/include/PointerControllerInterface.h index e60b3f48b5..e94dd94868 100644 --- a/services/inputflinger/include/PointerControllerInterface.h +++ b/services/inputflinger/include/PointerControllerInterface.h @@ -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, diff --git a/services/inputflinger/tests/InputReader_test.cpp b/services/inputflinger/tests/InputReader_test.cpp index 855247f29d..167a6243dd 100644 --- a/services/inputflinger/tests/InputReader_test.cpp +++ b/services/inputflinger/tests/InputReader_test.cpp @@ -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() { } @@ -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) { @@ -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; @@ -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; @@ -271,9 +262,6 @@ private: virtual std::string getDeviceAlias(const InputDeviceIdentifier&) { return ""; } - - virtual void updatePointerDisplay() { - } }; @@ -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 --- @@ -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 { @@ -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 |