Loading libs/input/PointerController.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -170,6 +170,11 @@ vec2 PointerController::getPosition() const { } } vec2 PointerController::getPositionInLogicalDisplay() const { const ui::LogicalDisplayId displayId = mCursorController.getDisplayId(); return mCursorController.getPosition(); } ui::LogicalDisplayId PointerController::getDisplayId() const { return mCursorController.getDisplayId(); } Loading libs/input/PointerController.h +4 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ public: vec2 move(float deltaX, float deltaY) override; void setPosition(float x, float y) override; vec2 getPosition() const override; vec2 getPositionInLogicalDisplay() const override; ui::LogicalDisplayId getDisplayId() const override; void fade(Transition transition) override; void unfade(Transition transition) override; Loading Loading @@ -175,6 +176,9 @@ public: vec2 getPosition() const override { LOG_ALWAYS_FATAL("Should not be called"); } vec2 getPositionInLogicalDisplay() const override { LOG_ALWAYS_FATAL("Should not be called"); } ui::LogicalDisplayId getDisplayId() const override { LOG_ALWAYS_FATAL("Should not be called"); } Loading libs/input/tests/PointerController_test.cpp +51 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,8 @@ protected: ~PointerControllerTest(); void ensureDisplayViewportIsSet(ui::LogicalDisplayId displayId = ui::LogicalDisplayId::DEFAULT); void addDisplay(ui::LogicalDisplayId displayId, int32_t width, int32_t height, ui::Rotation rotation = ui::ROTATION_0); sp<MockSprite> mPointerSprite; sp<MockPointerControllerPolicyInterface> mPolicy; Loading Loading @@ -223,6 +225,17 @@ void PointerControllerTest::ensureDisplayViewportIsSet(ui::LogicalDisplayId disp mPointerController->setDisplayViewport(viewport); } void PointerControllerTest::addDisplay(ui::LogicalDisplayId displayId, int32_t logicalWidth, int32_t logicalHeight, ui::Rotation rotation) { gui::DisplayInfo displayInfo; displayInfo.displayId = displayId; displayInfo.logicalWidth = logicalWidth; displayInfo.logicalHeight = logicalHeight; displayInfo.transform.set(ui::Transform::toRotationFlags(rotation), logicalHeight, logicalWidth); mRegisteredListener->onWindowInfosChanged({{}, {displayInfo}, 0, 0}); } void PointerControllerTest::loopThread() { Looper::setForThread(mLooper); Loading @@ -231,6 +244,44 @@ void PointerControllerTest::loopThread() { } } TEST_F(PointerControllerTest, getPosition) { addDisplay(ui::LogicalDisplayId::DEFAULT, 800, 600); ensureDisplayViewportIsSet(); mPointerController->setPosition(100, 200); vec2 absolutePosition = mPointerController->getPosition(); EXPECT_EQ(100, absolutePosition.x); EXPECT_EQ(200, absolutePosition.y); vec2 logicalPosition = mPointerController->getPositionInLogicalDisplay(); EXPECT_EQ(100, logicalPosition.x); EXPECT_EQ(200, logicalPosition.y); } TEST_F(PointerControllerTest, getPosition_withDisplayRotation) { addDisplay(ui::LogicalDisplayId::DEFAULT, 800, 600, ui::ROTATION_90); DisplayViewport viewport; viewport.displayId = ui::LogicalDisplayId::DEFAULT; viewport.logicalRight = 800; viewport.logicalBottom = 600; viewport.physicalRight = 600; viewport.physicalBottom = 800; viewport.deviceWidth = 600; viewport.deviceHeight = 800; mPointerController->setDisplayViewport(viewport); mPointerController->setPosition(100, 200); vec2 absolutePosition = mPointerController->getPosition(); EXPECT_EQ(100, absolutePosition.x); EXPECT_EQ(200, absolutePosition.y); vec2 logicalPosition = mPointerController->getPositionInLogicalDisplay(); EXPECT_EQ(400, logicalPosition.x); EXPECT_EQ(100, logicalPosition.y); } TEST_F(PointerControllerTest, useDefaultCursorTypeByDefault) { ensureDisplayViewportIsSet(); mPointerController->unfade(PointerController::Transition::IMMEDIATE); Loading Loading
libs/input/PointerController.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -170,6 +170,11 @@ vec2 PointerController::getPosition() const { } } vec2 PointerController::getPositionInLogicalDisplay() const { const ui::LogicalDisplayId displayId = mCursorController.getDisplayId(); return mCursorController.getPosition(); } ui::LogicalDisplayId PointerController::getDisplayId() const { return mCursorController.getDisplayId(); } Loading
libs/input/PointerController.h +4 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ public: vec2 move(float deltaX, float deltaY) override; void setPosition(float x, float y) override; vec2 getPosition() const override; vec2 getPositionInLogicalDisplay() const override; ui::LogicalDisplayId getDisplayId() const override; void fade(Transition transition) override; void unfade(Transition transition) override; Loading Loading @@ -175,6 +176,9 @@ public: vec2 getPosition() const override { LOG_ALWAYS_FATAL("Should not be called"); } vec2 getPositionInLogicalDisplay() const override { LOG_ALWAYS_FATAL("Should not be called"); } ui::LogicalDisplayId getDisplayId() const override { LOG_ALWAYS_FATAL("Should not be called"); } Loading
libs/input/tests/PointerController_test.cpp +51 −0 Original line number Diff line number Diff line Loading @@ -179,6 +179,8 @@ protected: ~PointerControllerTest(); void ensureDisplayViewportIsSet(ui::LogicalDisplayId displayId = ui::LogicalDisplayId::DEFAULT); void addDisplay(ui::LogicalDisplayId displayId, int32_t width, int32_t height, ui::Rotation rotation = ui::ROTATION_0); sp<MockSprite> mPointerSprite; sp<MockPointerControllerPolicyInterface> mPolicy; Loading Loading @@ -223,6 +225,17 @@ void PointerControllerTest::ensureDisplayViewportIsSet(ui::LogicalDisplayId disp mPointerController->setDisplayViewport(viewport); } void PointerControllerTest::addDisplay(ui::LogicalDisplayId displayId, int32_t logicalWidth, int32_t logicalHeight, ui::Rotation rotation) { gui::DisplayInfo displayInfo; displayInfo.displayId = displayId; displayInfo.logicalWidth = logicalWidth; displayInfo.logicalHeight = logicalHeight; displayInfo.transform.set(ui::Transform::toRotationFlags(rotation), logicalHeight, logicalWidth); mRegisteredListener->onWindowInfosChanged({{}, {displayInfo}, 0, 0}); } void PointerControllerTest::loopThread() { Looper::setForThread(mLooper); Loading @@ -231,6 +244,44 @@ void PointerControllerTest::loopThread() { } } TEST_F(PointerControllerTest, getPosition) { addDisplay(ui::LogicalDisplayId::DEFAULT, 800, 600); ensureDisplayViewportIsSet(); mPointerController->setPosition(100, 200); vec2 absolutePosition = mPointerController->getPosition(); EXPECT_EQ(100, absolutePosition.x); EXPECT_EQ(200, absolutePosition.y); vec2 logicalPosition = mPointerController->getPositionInLogicalDisplay(); EXPECT_EQ(100, logicalPosition.x); EXPECT_EQ(200, logicalPosition.y); } TEST_F(PointerControllerTest, getPosition_withDisplayRotation) { addDisplay(ui::LogicalDisplayId::DEFAULT, 800, 600, ui::ROTATION_90); DisplayViewport viewport; viewport.displayId = ui::LogicalDisplayId::DEFAULT; viewport.logicalRight = 800; viewport.logicalBottom = 600; viewport.physicalRight = 600; viewport.physicalBottom = 800; viewport.deviceWidth = 600; viewport.deviceHeight = 800; mPointerController->setDisplayViewport(viewport); mPointerController->setPosition(100, 200); vec2 absolutePosition = mPointerController->getPosition(); EXPECT_EQ(100, absolutePosition.x); EXPECT_EQ(200, absolutePosition.y); vec2 logicalPosition = mPointerController->getPositionInLogicalDisplay(); EXPECT_EQ(400, logicalPosition.x); EXPECT_EQ(100, logicalPosition.y); } TEST_F(PointerControllerTest, useDefaultCursorTypeByDefault) { ensureDisplayViewportIsSet(); mPointerController->unfade(PointerController::Transition::IMMEDIATE); Loading