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

Commit 730cf3cd authored by Nergi Rahardi's avatar Nergi Rahardi
Browse files

Adds API to update InputDispatcher key repeat info.

This will be used to update key repeat configuration
from InputManager (through Settings config).

- Removed requestRefreshConfiguration from InputDispatcher
- Refactor pull config model to push model

Bug: 251050590
Test: atest inputflinger_tests
Change-Id: I63325f6a067c837bcb4de488c922f151daf226da
parent 62baba9a
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -80,8 +80,6 @@ private:

    void notifyVibratorState(int32_t deviceId, bool isOn) override {}

    InputDispatcherConfiguration getDispatcherConfiguration() override { return mConfig; }

    bool filterInputEvent(const InputEvent& inputEvent, uint32_t policyFlags) override {
        return true; // dispatch event normally
    }
+7 −7
Original line number Diff line number Diff line
@@ -6740,13 +6740,6 @@ void InputDispatcher::cancelCurrentTouch() {
    mLooper->wake();
}

void InputDispatcher::requestRefreshConfiguration() {
    InputDispatcherConfiguration config = mPolicy.getDispatcherConfiguration();

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

void InputDispatcher::setMonitorDispatchingTimeoutForTest(std::chrono::nanoseconds timeout) {
    std::scoped_lock _l(mLock);
    mMonitorDispatchingTimeout = timeout;
@@ -6858,4 +6851,11 @@ sp<WindowInfoHandle> InputDispatcher::findWallpaperWindowBelow(
    return nullptr;
}

void InputDispatcher::setKeyRepeatConfiguration(nsecs_t timeout, nsecs_t delay) {
    std::scoped_lock _l(mLock);

    mConfig.keyRepeatTimeout = timeout;
    mConfig.keyRepeatDelay = delay;
}

} // namespace android::inputdispatcher
+2 −2
Original line number Diff line number Diff line
@@ -148,11 +148,11 @@ 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);

    void setKeyRepeatConfiguration(nsecs_t timeout, nsecs_t delay) override;

private:
    enum class DropReason {
        NOT_DROPPED,
+3 −4
Original line number Diff line number Diff line
@@ -226,11 +226,10 @@ public:
     */
    virtual void cancelCurrentTouch() = 0;

    /**
     * Request that the InputDispatcher's configuration, which can be obtained through the policy,
     * be updated.
    /*
     * Updates key repeat configuration timeout and delay.
     */
    virtual void requestRefreshConfiguration() = 0;
    virtual void setKeyRepeatConfiguration(nsecs_t timeout, nsecs_t delay) = 0;
};

} // namespace android
+0 −3
Original line number Diff line number Diff line
@@ -73,9 +73,6 @@ public:
                                      InputDeviceSensorAccuracy accuracy) = 0;
    virtual void notifyVibratorState(int32_t deviceId, bool isOn) = 0;

    /* Gets the input dispatcher configuration. */
    virtual InputDispatcherConfiguration getDispatcherConfiguration() = 0;

    /* Filters an input event.
     * Return true to dispatch the event unmodified, false to consume the event.
     * A filter can also transform and inject events later by passing POLICY_FLAG_FILTERED
Loading