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

Commit 49768c13 authored by Erik Wolsheimer's avatar Erik Wolsheimer Committed by android-build-merger
Browse files

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

Merge "Fix race condition triggered by quick stop/start of Dream" into cw-f-dev am: 90a60548 am: 94b497bc
am: f61df432

Change-Id: I4633607638c0c2a1ad05c76fc45eb6a894ff3202
parents 063a1a3a f61df432
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);
        }
    }