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

Commit 29d37180 authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
Browse files

Merge "Merge "Fix race condition triggered by quick stop/start of Dream" into...

Merge "Merge "Fix race condition triggered by quick stop/start of Dream" into cw-f-dev am: 90a60548 am: 94b497bc am: f61df432 am: 49768c13"
parents 559c2660 9fce4580
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -86,6 +86,7 @@ public final class DreamManagerService extends SystemService {
    private boolean mCurrentDreamCanDoze;
    private boolean mCurrentDreamIsDozing;
    private boolean mCurrentDreamIsWaking;
    private Runnable mStopDreamRunnable;
    private int mCurrentDreamDozeScreenState = Display.STATE_UNKNOWN;
    private int mCurrentDreamDozeScreenBrightness = PowerManager.BRIGHTNESS_DEFAULT;

@@ -349,6 +350,11 @@ public final class DreamManagerService extends SystemService {

    private void startDreamLocked(final ComponentName name,
            final boolean isTest, final boolean canDoze, final int userId) {
        if (mStopDreamRunnable != null) {
            mHandler.removeCallbacks(mStopDreamRunnable);
            mStopDreamRunnable = null;
        }

        if (Objects.equal(mCurrentDreamName, name)
                && mCurrentDreamIsTest == isTest
                && mCurrentDreamCanDoze == canDoze
@@ -386,13 +392,15 @@ public final class DreamManagerService extends SystemService {
                mCurrentDreamIsWaking = true;
            }

            mHandler.post(new Runnable() {
            mStopDreamRunnable = new Runnable() {
                @Override
                public void run() {
                    Slog.i(TAG, "Performing gentle wake from dream.");
                    mController.stopDream(immediate);
                    mStopDreamRunnable = null;
                }
            });
            };
            mHandler.post(mStopDreamRunnable);
        }
    }