Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3beea7dc authored by Harry Cutts's avatar Harry Cutts
Browse files

GestureConverter_test: disable pointer controller with choreographer

These tests were unrealistic in that when the pointer choreographer flag
was enabled, the FakePointerController would continue keeping track of
the pointer position, even though the real PointerControllers would not
(see change I475f3286c83b90e161e186e62c2842e539434603). Modify the fake
so that it can be disabled, too.

Bug: 245989146
Test: atest inputflinger_tests:GestureConverterTest \
            inputflinger_tests:GestureConverterTestWithChoreographer
Change-Id: I7c7dd535804ca1552fb731e6da9fd148c047791b
parent 39648ab3
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
@@ -37,16 +37,22 @@ const std::map<int32_t, std::vector<int32_t>>& FakePointerController::getSpots()
}

void FakePointerController::setPosition(float x, float y) {
    if (!mEnabled) return;

    mX = x;
    mY = y;
}

FloatPoint FakePointerController::getPosition() const {
    if (!mEnabled) {
        return {0, 0};
    }

    return {mX, mY};
}

int32_t FakePointerController::getDisplayId() const {
    if (!mDisplayId) {
    if (!mEnabled || !mDisplayId) {
        return ADISPLAY_ID_NONE;
    }
    return *mDisplayId;
@@ -64,6 +70,8 @@ void FakePointerController::updatePointerIcon(PointerIconStyle iconId) {
}

void FakePointerController::setCustomPointerIcon(const SpriteIcon& icon) {
    if (!mEnabled) return;

    ASSERT_FALSE(mCustomIconStyle.has_value()) << "Custom pointer icon was set more than once";
    mCustomIconStyle = icon.style;
}
@@ -114,10 +122,14 @@ bool FakePointerController::isPointerShown() {
}

std::optional<FloatRect> FakePointerController::getBounds() const {
    if (!mEnabled) return std::nullopt;

    return mHaveBounds ? std::make_optional<FloatRect>(mMinX, mMinY, mMaxX, mMaxY) : std::nullopt;
}

void FakePointerController::move(float deltaX, float deltaY) {
    if (!mEnabled) return;

    mX += deltaX;
    if (mX < mMinX) mX = mMinX;
    if (mX > mMaxX) mX = mMaxX;
@@ -127,14 +139,20 @@ void FakePointerController::move(float deltaX, float deltaY) {
}

void FakePointerController::fade(Transition) {
    if (!mEnabled) return;

    mIsPointerShown = false;
}
void FakePointerController::unfade(Transition) {
    if (!mEnabled) return;

    mIsPointerShown = true;
}

void FakePointerController::setSpots(const PointerCoords*, const uint32_t*, BitSet32 spotIdBits,
                                     int32_t displayId) {
    if (!mEnabled) return;

    std::vector<int32_t> newSpots;
    // Add spots for fingers that are down.
    for (BitSet32 idBits(spotIdBits); !idBits.isEmpty();) {
@@ -146,6 +164,8 @@ void FakePointerController::setSpots(const PointerCoords*, const uint32_t*, BitS
}

void FakePointerController::clearSpots() {
    if (!mEnabled) return;

    mSpotsByDisplay.clear();
}

+4 −0
Original line number Diff line number Diff line
@@ -30,6 +30,9 @@ struct SpriteIcon {

class FakePointerController : public PointerControllerInterface {
public:
    FakePointerController() : FakePointerController(/*enabled=*/true) {}
    FakePointerController(bool enabled) : mEnabled(enabled) {}

    virtual ~FakePointerController() {}

    void setBounds(float minX, float minY, float maxX, float maxY);
@@ -64,6 +67,7 @@ private:
                  int32_t displayId) override;
    void clearSpots() override;

    const bool mEnabled;
    bool mHaveBounds{false};
    float mMinX{0}, mMinY{0}, mMaxX{0}, mMaxY{0};
    float mX{0}, mY{0};
+2 −1
Original line number Diff line number Diff line
@@ -69,7 +69,8 @@ protected:
        mFakeEventHub->addAbsoluteAxis(EVENTHUB_ID, ABS_MT_POSITION_X, -500, 500, 0, 0, 20);
        mFakeEventHub->addAbsoluteAxis(EVENTHUB_ID, ABS_MT_POSITION_Y, -500, 500, 0, 0, 20);

        mFakePointerController = std::make_shared<FakePointerController>();
        mFakePointerController = std::make_shared<FakePointerController>(
                /*enabled=*/!input_flags::enable_pointer_choreographer());
        mFakePointerController->setBounds(0, 0, 800 - 1, 480 - 1);
        mFakePointerController->setPosition(POINTER_X, POINTER_Y);
        mFakePolicy->setPointerController(mFakePointerController);