Merge "Fix race condition triggered by quick stop/start of Dream" into cw-f-dev

am: 90a6054805

Change-Id: I708fda61e866a891238d6dbbfc6a9b901e6da6b3
This commit is contained in:
Erik Wolsheimer
2017-05-23 22:51:25 +00:00
committed by android-build-merger

View File

@@ -86,6 +86,7 @@ public final class DreamManagerService extends SystemService {
private boolean mCurrentDreamCanDoze; private boolean mCurrentDreamCanDoze;
private boolean mCurrentDreamIsDozing; private boolean mCurrentDreamIsDozing;
private boolean mCurrentDreamIsWaking; private boolean mCurrentDreamIsWaking;
private Runnable mStopDreamRunnable;
private int mCurrentDreamDozeScreenState = Display.STATE_UNKNOWN; private int mCurrentDreamDozeScreenState = Display.STATE_UNKNOWN;
private int mCurrentDreamDozeScreenBrightness = PowerManager.BRIGHTNESS_DEFAULT; private int mCurrentDreamDozeScreenBrightness = PowerManager.BRIGHTNESS_DEFAULT;
@@ -349,6 +350,11 @@ public final class DreamManagerService extends SystemService {
private void startDreamLocked(final ComponentName name, private void startDreamLocked(final ComponentName name,
final boolean isTest, final boolean canDoze, final int userId) { final boolean isTest, final boolean canDoze, final int userId) {
if (mStopDreamRunnable != null) {
mHandler.removeCallbacks(mStopDreamRunnable);
mStopDreamRunnable = null;
}
if (Objects.equal(mCurrentDreamName, name) if (Objects.equal(mCurrentDreamName, name)
&& mCurrentDreamIsTest == isTest && mCurrentDreamIsTest == isTest
&& mCurrentDreamCanDoze == canDoze && mCurrentDreamCanDoze == canDoze
@@ -386,13 +392,15 @@ public final class DreamManagerService extends SystemService {
mCurrentDreamIsWaking = true; mCurrentDreamIsWaking = true;
} }
mHandler.post(new Runnable() { mStopDreamRunnable = new Runnable() {
@Override @Override
public void run() { public void run() {
Slog.i(TAG, "Performing gentle wake from dream."); Slog.i(TAG, "Performing gentle wake from dream.");
mController.stopDream(immediate); mController.stopDream(immediate);
mStopDreamRunnable = null;
} }
}); };
mHandler.post(mStopDreamRunnable);
} }
} }