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

Commit 558f09fc authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Adam Lesinski
Browse files

DO NOT MERGE ANYWHERE: Hack to get devices booting again.

If we try scheduling a pass before the system is ready, record a
pending event and dispatch once we're actually ready.

Bug: 26863668
Change-Id: I028285383c8bbe8b653aeaa7544eefe3d41277bc
(cherry picked from commit 538c11cf)
parent 9d89bd5c
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -145,6 +145,8 @@ public class UsageStatsService extends SystemService implements
    private boolean mScreenOn;
    private long mLastAppIdleParoledTime;

    private volatile boolean mPendingOneTimeCheckIdleStates;

    long mScreenOnTime;
    long mLastScreenOnEventRealtime;

@@ -221,6 +223,10 @@ public class UsageStatsService extends SystemService implements
            synchronized (this) {
                updateDisplayLocked();
            }

            if (mPendingOneTimeCheckIdleStates) {
                postOneTimeCheckIdleStates();
            }
        } else if (phase == PHASE_BOOT_COMPLETED) {
            setAppIdleParoled(getContext().getSystemService(BatteryManager.class).isCharging());
        }
@@ -368,7 +374,13 @@ public class UsageStatsService extends SystemService implements
     * scheduling a series of repeating checkIdleStates each time we fired off one.
     */
    void postOneTimeCheckIdleStates() {
        if (mDeviceIdleController == null) {
            // Not booted yet; wait for it!
            mPendingOneTimeCheckIdleStates = true;
        } else {
            mHandler.sendEmptyMessage(MSG_ONE_TIME_CHECK_IDLE_STATES);
            mPendingOneTimeCheckIdleStates = false;
        }
    }

    /** Check all running users' or specified user's apps to see if they enter an idle state. */