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

Commit e10de972 authored by Michael Chan's avatar Michael Chan
Browse files

Throttle one last user activity call to 1/sec that was missed last time

	modified:   services/java/com/android/server/WindowManagerService.java
parent 72f3aa37
Loading
Loading
Loading
Loading
+16 −2
Original line number Original line Diff line number Diff line
@@ -3721,7 +3721,7 @@ public class WindowManagerService extends IWindowManager.Stub implements Watchdo
    private final void wakeupIfNeeded(WindowState targetWin, int eventType) {
    private final void wakeupIfNeeded(WindowState targetWin, int eventType) {
        long curTime = SystemClock.uptimeMillis();
        long curTime = SystemClock.uptimeMillis();


        if (eventType == LONG_TOUCH_EVENT || eventType == CHEEK_EVENT) {
        if (eventType == TOUCH_EVENT || eventType == LONG_TOUCH_EVENT || eventType == CHEEK_EVENT) {
            if (mLastTouchEventType == eventType &&
            if (mLastTouchEventType == eventType &&
                    (curTime - mLastUserActivityCallTime) < MIN_TIME_BETWEEN_USERACTIVITIES) {
                    (curTime - mLastUserActivityCallTime) < MIN_TIME_BETWEEN_USERACTIVITIES) {
                return;
                return;
@@ -5194,7 +5194,21 @@ public class WindowManagerService extends IWindowManager.Stub implements Watchdo
                        } catch (RemoteException e) {
                        } catch (RemoteException e) {
                            // Ignore
                            // Ignore
                        }
                        }
                        mPowerManager.userActivity(curTime, false, eventType, false);

                        if (eventType != TOUCH_EVENT
                                && eventType != LONG_TOUCH_EVENT
                                && eventType != CHEEK_EVENT) {
                            mPowerManager.userActivity(curTime, false,
                                    eventType, false);
                        } else if (mLastTouchEventType != eventType
                                || (curTime - mLastUserActivityCallTime)
                                >= MIN_TIME_BETWEEN_USERACTIVITIES) {
                            mLastUserActivityCallTime = curTime;
                            mLastTouchEventType = eventType;
                            mPowerManager.userActivity(curTime, false,
                                    eventType, false);
                        }

                        switch (ev.classType) {
                        switch (ev.classType) {
                            case RawInputEvent.CLASS_KEYBOARD:
                            case RawInputEvent.CLASS_KEYBOARD:
                                KeyEvent ke = (KeyEvent)ev.event;
                                KeyEvent ke = (KeyEvent)ev.event;