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

Commit 08b6084b authored by Siarhei Vishniakou's avatar Siarhei Vishniakou Committed by Automerger Merge Worker
Browse files

Merge "Use <chrono> for input-related timeouts" into rvc-dev am: 7e838c23...

Merge "Use <chrono> for input-related timeouts" into rvc-dev am: 7e838c23 am: 292a1f7c am: 1b4b1ff1 am: 9f32a48a

Change-Id: Id23fe14bea81d448131c4ef5ac8e99f0d8509fb0
parents 53fee01d 9f32a48a
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -178,7 +178,7 @@ private:
        mInputInfo.name = "Test info";
        mInputInfo.name = "Test info";
        mInputInfo.layoutParamsFlags = InputWindowInfo::FLAG_NOT_TOUCH_MODAL;
        mInputInfo.layoutParamsFlags = InputWindowInfo::FLAG_NOT_TOUCH_MODAL;
        mInputInfo.layoutParamsType = InputWindowInfo::TYPE_BASE_APPLICATION;
        mInputInfo.layoutParamsType = InputWindowInfo::TYPE_BASE_APPLICATION;
        mInputInfo.dispatchingTimeout = 100000;
        mInputInfo.dispatchingTimeout = seconds_to_nanoseconds(5);
        mInputInfo.globalScaleFactor = 1.0;
        mInputInfo.globalScaleFactor = 1.0;
        mInputInfo.canReceiveKeys = true;
        mInputInfo.canReceiveKeys = true;
        mInputInfo.hasFocus = true;
        mInputInfo.hasFocus = true;
@@ -196,7 +196,7 @@ private:
        InputApplicationInfo aInfo;
        InputApplicationInfo aInfo;
        aInfo.token = new BBinder();
        aInfo.token = new BBinder();
        aInfo.name = "Test app info";
        aInfo.name = "Test app info";
        aInfo.dispatchingTimeout = 100000;
        aInfo.dispatchingTimeout = seconds_to_nanoseconds(5);


        mInputInfo.applicationInfo = aInfo;
        mInputInfo.applicationInfo = aInfo;
    }
    }
+4 −4
Original line number Original line Diff line number Diff line
@@ -28,8 +28,8 @@ static const int32_t DEVICE_ID = 1;
static const int32_t INJECTOR_PID = 999;
static const int32_t INJECTOR_PID = 999;
static const int32_t INJECTOR_UID = 1001;
static const int32_t INJECTOR_UID = 1001;


static const int32_t INJECT_EVENT_TIMEOUT = 5000;
static constexpr std::chrono::duration INJECT_EVENT_TIMEOUT = 5s;
static const int32_t DISPATCHING_TIMEOUT = 100000;
static constexpr std::chrono::nanoseconds DISPATCHING_TIMEOUT = 100ms;


static nsecs_t now() {
static nsecs_t now() {
    return systemTime(SYSTEM_TIME_MONOTONIC);
    return systemTime(SYSTEM_TIME_MONOTONIC);
@@ -98,7 +98,7 @@ public:
    virtual ~FakeApplicationHandle() {}
    virtual ~FakeApplicationHandle() {}


    virtual bool updateInfo() {
    virtual bool updateInfo() {
        mInfo.dispatchingTimeout = DISPATCHING_TIMEOUT;
        mInfo.dispatchingTimeout = DISPATCHING_TIMEOUT.count();
        return true;
        return true;
    }
    }
};
};
@@ -163,7 +163,7 @@ public:
        mInfo.name = "FakeWindowHandle";
        mInfo.name = "FakeWindowHandle";
        mInfo.layoutParamsFlags = 0;
        mInfo.layoutParamsFlags = 0;
        mInfo.layoutParamsType = InputWindowInfo::TYPE_APPLICATION;
        mInfo.layoutParamsType = InputWindowInfo::TYPE_APPLICATION;
        mInfo.dispatchingTimeout = DISPATCHING_TIMEOUT;
        mInfo.dispatchingTimeout = DISPATCHING_TIMEOUT.count();
        mInfo.frameLeft = mFrame.left;
        mInfo.frameLeft = mFrame.left;
        mInfo.frameTop = mFrame.top;
        mInfo.frameTop = mFrame.top;
        mInfo.frameRight = mFrame.right;
        mInfo.frameRight = mFrame.right;
+5 −6
Original line number Original line Diff line number Diff line
@@ -3265,14 +3265,14 @@ void InputDispatcher::notifyDeviceReset(const NotifyDeviceResetArgs* args) {


int32_t InputDispatcher::injectInputEvent(const InputEvent* event, int32_t injectorPid,
int32_t InputDispatcher::injectInputEvent(const InputEvent* event, int32_t injectorPid,
                                          int32_t injectorUid, int32_t syncMode,
                                          int32_t injectorUid, int32_t syncMode,
                                          int32_t timeoutMillis, uint32_t policyFlags) {
                                          std::chrono::milliseconds timeout, uint32_t policyFlags) {
#if DEBUG_INBOUND_EVENT_DETAILS
#if DEBUG_INBOUND_EVENT_DETAILS
    ALOGD("injectInputEvent - eventType=%d, injectorPid=%d, injectorUid=%d, "
    ALOGD("injectInputEvent - eventType=%d, injectorPid=%d, injectorUid=%d, "
          "syncMode=%d, timeoutMillis=%d, policyFlags=0x%08x",
          "syncMode=%d, timeout=%lld, policyFlags=0x%08x",
          event->getType(), injectorPid, injectorUid, syncMode, timeoutMillis, policyFlags);
          event->getType(), injectorPid, injectorUid, syncMode, timeout.count(), policyFlags);
#endif
#endif


    nsecs_t endTime = now() + milliseconds_to_nanoseconds(timeoutMillis);
    nsecs_t endTime = now() + std::chrono::duration_cast<std::chrono::nanoseconds>(timeout).count();


    policyFlags |= POLICY_FLAG_INJECTED;
    policyFlags |= POLICY_FLAG_INJECTED;
    if (hasInjectionPermission(injectorPid, injectorUid)) {
    if (hasInjectionPermission(injectorPid, injectorUid)) {
@@ -3459,8 +3459,7 @@ int32_t InputDispatcher::injectInputEvent(const InputEvent* event, int32_t injec
    } // release lock
    } // release lock


#if DEBUG_INJECTION
#if DEBUG_INJECTION
    ALOGD("injectInputEvent - Finished with result %d.  "
    ALOGD("injectInputEvent - Finished with result %d. injectorPid=%d, injectorUid=%d",
          "injectorPid=%d, injectorUid=%d",
          injectionResult, injectorPid, injectorUid);
          injectionResult, injectorPid, injectorUid);
#endif
#endif


+2 −1
Original line number Original line Diff line number Diff line
@@ -103,7 +103,8 @@ public:
    virtual void notifyDeviceReset(const NotifyDeviceResetArgs* args) override;
    virtual void notifyDeviceReset(const NotifyDeviceResetArgs* args) override;


    virtual int32_t injectInputEvent(const InputEvent* event, int32_t injectorPid,
    virtual int32_t injectInputEvent(const InputEvent* event, int32_t injectorPid,
                                     int32_t injectorUid, int32_t syncMode, int32_t timeoutMillis,
                                     int32_t injectorUid, int32_t syncMode,
                                     std::chrono::milliseconds timeout,
                                     uint32_t policyFlags) override;
                                     uint32_t policyFlags) override;


    virtual std::unique_ptr<VerifiedInputEvent> verifyInputEvent(const InputEvent& event) override;
    virtual std::unique_ptr<VerifiedInputEvent> verifyInputEvent(const InputEvent& event) override;
+2 −2
Original line number Original line Diff line number Diff line
@@ -90,8 +90,8 @@ public:
     * This method may be called on any thread (usually by the input manager).
     * This method may be called on any thread (usually by the input manager).
     */
     */
    virtual int32_t injectInputEvent(const InputEvent* event, int32_t injectorPid,
    virtual int32_t injectInputEvent(const InputEvent* event, int32_t injectorPid,
                                     int32_t injectorUid, int32_t syncMode, int32_t timeoutMillis,
                                     int32_t injectorUid, int32_t syncMode,
                                     uint32_t policyFlags) = 0;
                                     std::chrono::milliseconds timeout, uint32_t policyFlags) = 0;


    /*
    /*
     * Check whether InputEvent actually happened by checking the signature of the event.
     * Check whether InputEvent actually happened by checking the signature of the event.
Loading