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

Commit bb2dd8ea authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Revert "Fix drag and drop (2/3)"" into qt-qpr1-dev am: 8b19a055

Change-Id: I67ec7ef546b5d0bdf954266687955ee8c5f94bf4
parents e62fe7e2 8b19a055
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ public:

    virtual void setInputWindows(const std::vector<InputWindowInfo>& inputHandles,
            const sp<ISetInputWindowsListener>& setInputWindowsListener) = 0;
    virtual void transferTouchFocus(const sp<IBinder>& fromToken, const sp<IBinder>& toToken) = 0;
    virtual void registerInputChannel(const sp<InputChannel>& channel) = 0;
    virtual void unregisterInputChannel(const sp<InputChannel>& channel) = 0;
};
@@ -51,8 +50,7 @@ public:
    enum {
        SET_INPUT_WINDOWS_TRANSACTION = IBinder::FIRST_CALL_TRANSACTION,
        REGISTER_INPUT_CHANNEL_TRANSACTION,
        UNREGISTER_INPUT_CHANNEL_TRANSACTION,
        TRANSFER_TOUCH_FOCUS
        UNREGISTER_INPUT_CHANNEL_TRANSACTION
    };

    virtual status_t onTransact(uint32_t code, const Parcel& data,
+0 −50
Original line number Diff line number Diff line
@@ -133,27 +133,6 @@ public:
        EXPECT_EQ(AMOTION_EVENT_ACTION_UP, mev->getAction());
    }

    void expectMotionEvent(int motionEventType, int x, int y) {
        InputEvent *ev = consumeEvent();
        ASSERT_NE(ev, nullptr);
        ASSERT_EQ(ev->getType(), AINPUT_EVENT_TYPE_MOTION);
        MotionEvent *mev = static_cast<MotionEvent *>(ev);
        EXPECT_EQ(motionEventType, mev->getAction());
        EXPECT_EQ(x, mev->getX(0));
        EXPECT_EQ(y, mev->getY(0));
    }

    void expectNoMotionEvent(int motionEventType) {
        InputEvent *ev = consumeEvent();
        if (ev == nullptr || ev->getType() != AINPUT_EVENT_TYPE_MOTION) {
            // Didn't find an event or a motion event so assume action didn't occur.
            return;
        }

        MotionEvent *mev = static_cast<MotionEvent *>(ev);
        EXPECT_NE(motionEventType, mev->getAction());
    }

    ~InputSurface() {
        mInputFlinger->unregisterInputChannel(mServerChannel);
    }
@@ -278,15 +257,6 @@ void injectTap(int x, int y) {
    }
}

void injectMotionEvent(std::string event, int x, int y) {
    char *buf1, *buf2;
    asprintf(&buf1, "%d", x);
    asprintf(&buf2, "%d", y);
    if (fork() == 0) {
        execlp("input", "input", "motionevent", event.c_str(), buf1, buf2, NULL);
    }
}

TEST_F(InputSurfacesTest, can_receive_input) {
    std::unique_ptr<InputSurface> surface = makeSurface(100, 100);
    surface->showAt(100, 100);
@@ -506,26 +476,6 @@ TEST_F(InputSurfacesTest, input_respects_container_layer_visiblity) {
    bgSurface->expectTap(1, 1);
}

TEST_F(InputSurfacesTest, transfer_touch_focus) {
    std::unique_ptr<InputSurface> fromSurface = makeSurface(100, 100);

    fromSurface->showAt(10, 10);
    injectMotionEvent("DOWN", 11, 11);
    fromSurface->expectMotionEvent(AMOTION_EVENT_ACTION_DOWN, 1, 1);

    std::unique_ptr<InputSurface> toSurface = makeSurface(100, 100);
    toSurface->showAt(10, 10);

    sp<IBinder> fromToken = fromSurface->mServerChannel->getToken();
    sp<IBinder> toToken = toSurface->mServerChannel->getToken();
    SurfaceComposerClient::Transaction t;
    t.transferTouchFocus(fromToken, toToken).apply(true);

    injectMotionEvent("UP", 11, 11);
    toSurface->expectMotionEvent(AMOTION_EVENT_ACTION_UP, 1, 1);
    fromSurface->expectNoMotionEvent(AMOTION_EVENT_ACTION_UP);
}

TEST_F(InputSurfacesTest, input_respects_outscreen) {
    std::unique_ptr<InputSurface> surface = makeSurface(100, 100);
    surface->showAt(-1, -1);
+0 −17
Original line number Diff line number Diff line
@@ -45,16 +45,6 @@ public:
                IBinder::FLAG_ONEWAY);
    }

    virtual void transferTouchFocus(const sp<IBinder>& fromToken, const sp<IBinder>& toToken) {
        Parcel data, reply;
        data.writeInterfaceToken(IInputFlinger::getInterfaceDescriptor());

        data.writeStrongBinder(fromToken);
        data.writeStrongBinder(toToken);
        remote()->transact(BnInputFlinger::TRANSFER_TOUCH_FOCUS, data, &reply,
                IBinder::FLAG_ONEWAY);
    }

    virtual void registerInputChannel(const sp<InputChannel>& channel) {
        Parcel data, reply;
        data.writeInterfaceToken(IInputFlinger::getInterfaceDescriptor());
@@ -104,13 +94,6 @@ status_t BnInputFlinger::onTransact(
        unregisterInputChannel(channel);
        break;
    }
    case TRANSFER_TOUCH_FOCUS: {
        CHECK_INTERFACE(IInputFlinger, data, reply);
        sp<IBinder> fromToken = data.readStrongBinder();
        sp<IBinder> toToken = data.readStrongBinder();
        transferTouchFocus(fromToken, toToken);
        break;
    }
    default:
        return BBinder::onTransact(code, data, reply, flags);
    }
+0 −4
Original line number Diff line number Diff line
@@ -119,10 +119,6 @@ void InputManager::setInputWindows(const std::vector<InputWindowInfo>& infos,
    }
}

void InputManager::transferTouchFocus(const sp<IBinder>& fromToken, const sp<IBinder>& toToken) {
    mDispatcher->transferTouchFocus(fromToken, toToken);
}

// Used by tests only.
void InputManager::registerInputChannel(const sp<InputChannel>& channel) {
    IPCThreadState* ipc = IPCThreadState::self();
+0 −1
Original line number Diff line number Diff line
@@ -96,7 +96,6 @@ public:

    virtual void setInputWindows(const std::vector<InputWindowInfo>& handles,
            const sp<ISetInputWindowsListener>& setInputWindowsListener);
    virtual void transferTouchFocus(const sp<IBinder>& fromToken, const sp<IBinder>& toToken);

    virtual void registerInputChannel(const sp<InputChannel>& channel);
    virtual void unregisterInputChannel(const sp<InputChannel>& channel);
Loading