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

Commit 48d1b14b authored by Jeff Brown's avatar Jeff Brown
Browse files

Pause activities when the screen is off.

Bug: 19948628
Change-Id: I90923605d50f4ee381da4e05117879554e0a1dee
parent 8e5d33ef
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -514,6 +514,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    boolean mDreamingLockscreen;
    boolean mDreamingSleepTokenNeeded;
    SleepToken mDreamingSleepToken;
    SleepToken mScreenOffSleepToken;
    boolean mKeyguardSecure;
    boolean mKeyguardSecureIncludingHidden;
    volatile boolean mKeyguardOccluded;
@@ -5385,6 +5386,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    public void screenTurnedOff() {
        if (DEBUG_WAKEUP) Slog.i(TAG, "Screen turned off...");

        updateScreenOffSleepToken(true);
        synchronized (mLock) {
            mScreenOnEarly = false;
            mScreenOnFully = false;
@@ -5399,6 +5401,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    public void screenTurningOn(final ScreenOnListener screenOnListener) {
        if (DEBUG_WAKEUP) Slog.i(TAG, "Screen turning on...");

        updateScreenOffSleepToken(false);
        synchronized (mLock) {
            mScreenOnEarly = true;
            mScreenOnFully = false;
@@ -6021,6 +6024,20 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        } else {
            if (mDreamingSleepToken != null) {
                mDreamingSleepToken.release();
                mDreamingSleepToken = null;
            }
        }
    }

    private void updateScreenOffSleepToken(boolean acquire) {
        if (acquire) {
            if (mScreenOffSleepToken == null) {
                mScreenOffSleepToken = mActivityManagerInternal.acquireSleepToken("ScreenOff");
            }
        } else {
            if (mScreenOffSleepToken != null) {
                mScreenOffSleepToken.release();
                mScreenOffSleepToken = null;
            }
        }
    }