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:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user