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

Commit 5ded7af6 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Fix parole scheduling bugs.

There were a few subtle bugs in app idle parole scheduling that
would cause us to never end a parole period we had entered.  The
updated logic in this change concentrates the registration for the
next event in one place in setAppIdleParoled().

Bug: 24050462
Change-Id: I1efe43cd6e00a547f70c4a4a37e1f3ef52a7e706
parent dc988061
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -314,6 +314,8 @@ public class UsageStatsService extends SystemService implements
                mAppIdleParoled = paroled;
                if (DEBUG) Slog.d(TAG, "Changing paroled to " + mAppIdleParoled);
                if (paroled) {
                    postParoleEndTimeout();
                } else {
                    mLastAppIdleParoledTime = checkAndGetTimeLocked();
                    postNextParoleTimeout();
                }
@@ -404,8 +406,6 @@ public class UsageStatsService extends SystemService implements
                if (timeSinceLastParole > mAppIdleParoleIntervalMillis) {
                    if (DEBUG) Slog.d(TAG, "Crossed default parole interval");
                    setAppIdleParoled(true);
                    // Make sure it ends at some point
                    postParoleEndTimeout();
                } else {
                    if (DEBUG) Slog.d(TAG, "Not long enough to go to parole");
                    postNextParoleTimeout();
@@ -492,7 +492,6 @@ public class UsageStatsService extends SystemService implements
            if (!deviceIdle
                    && timeSinceLastParole >= mAppIdleParoleIntervalMillis) {
                if (DEBUG) Slog.i(TAG, "Bringing idle apps out of inactive state due to deviceIdleMode=false");
                postNextParoleTimeout();
                setAppIdleParoled(true);
            } else if (deviceIdle) {
                if (DEBUG) Slog.i(TAG, "Device idle, back to prison");