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

Commit 46e23626 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Notify dispatcher when its configuration needs to be updated" into udc-dev am: 8db57bf9

parents 06271deb 8db57bf9
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -676,7 +676,6 @@ InputDispatcher::InputDispatcher(const sp<InputDispatcherPolicyInterface>& polic
    SurfaceComposerClient::getDefault()->addWindowInfosListener(mWindowInfoListener);
#endif
    mKeyRepeatState.lastKeyEntry = nullptr;
    policy->getDispatcherConfiguration(&mConfig);
}

InputDispatcher::~InputDispatcher() {
@@ -6606,6 +6605,14 @@ void InputDispatcher::cancelCurrentTouch() {
    mLooper->wake();
}

void InputDispatcher::requestRefreshConfiguration() {
    InputDispatcherConfiguration config;
    mPolicy->getDispatcherConfiguration(&config);

    std::scoped_lock _l(mLock);
    mConfig = config;
}

void InputDispatcher::setMonitorDispatchingTimeoutForTest(std::chrono::nanoseconds timeout) {
    std::scoped_lock _l(mLock);
    mMonitorDispatchingTimeout = timeout;
+3 −1
Original line number Diff line number Diff line
@@ -149,6 +149,8 @@ public:

    void cancelCurrentTouch() override;

    void requestRefreshConfiguration() override;

    // Public to allow tests to verify that a Monitor can get ANR.
    void setMonitorDispatchingTimeoutForTest(std::chrono::nanoseconds timeout);

@@ -166,7 +168,7 @@ private:
    std::unique_ptr<InputThread> mThread;

    sp<InputDispatcherPolicyInterface> mPolicy;
    android::InputDispatcherConfiguration mConfig;
    android::InputDispatcherConfiguration mConfig GUARDED_BY(mLock);

    std::mutex mLock;

+6 −0
Original line number Diff line number Diff line
@@ -225,6 +225,12 @@ public:
     * Abort the current touch stream.
     */
    virtual void cancelCurrentTouch() = 0;

    /**
     * Request that the InputDispatcher's configuration, which can be obtained through the policy,
     * be updated.
     */
    virtual void requestRefreshConfiguration() = 0;
};

} // namespace android
+1 −0
Original line number Diff line number Diff line
@@ -5284,6 +5284,7 @@ protected:
        mFakePolicy = sp<FakeInputDispatcherPolicy>::make();
        mFakePolicy->setKeyRepeatConfiguration(KEY_REPEAT_TIMEOUT, KEY_REPEAT_DELAY);
        mDispatcher = std::make_unique<InputDispatcher>(mFakePolicy);
        mDispatcher->requestRefreshConfiguration();
        mDispatcher->setInputDispatchMode(/*enabled*/ true, /*frozen*/ false);
        ASSERT_EQ(OK, mDispatcher->start());