Merge "Release doze wake lock when doze dream is stopped" into tm-qpr-dev am: e37a7d5e0c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21126343

Change-Id: I7040e09887d287112478d3de3aa576032423d4b7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Josh Tsuji
2023-01-31 05:36:27 +00:00
committed by Automerger Merge Worker
2 changed files with 15 additions and 1 deletions

View File

@@ -244,7 +244,10 @@ final class DreamController {
}
mListener.onDreamStopped(dream.mToken);
} else if (dream.mCanDoze && !mCurrentDream.mCanDoze) {
mListener.stopDozing(dream.mToken);
}
} finally {
Trace.traceEnd(Trace.TRACE_TAG_POWER);
}
@@ -289,6 +292,7 @@ final class DreamController {
*/
public interface Listener {
void onDreamStopped(Binder token);
void stopDozing(Binder token);
}
private final class DreamRecord implements DeathRecipient, ServiceConnection {

View File

@@ -499,7 +499,12 @@ public final class DreamManagerService extends SystemService {
}
synchronized (mLock) {
if (mCurrentDream != null && mCurrentDream.token == token && mCurrentDream.isDozing) {
if (mCurrentDream == null) {
return;
}
final boolean sameDream = mCurrentDream.token == token;
if ((sameDream && mCurrentDream.isDozing) || (!sameDream && !mCurrentDream.isDozing)) {
mCurrentDream.isDozing = false;
mDozeWakeLock.release();
mPowerManagerInternal.setDozeOverrideFromDreamManager(
@@ -765,6 +770,11 @@ public final class DreamManagerService extends SystemService {
}
}
}
@Override
public void stopDozing(Binder token) {
stopDozingInternal(token);
}
};
private final ContentObserver mDozeEnabledObserver = new ContentObserver(null) {