Merge "Do not wake the device if an activity starts while dozing." into tm-dev am: e2f44dc7f2

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

Change-Id: I799a0c18fdea443f185740deaa3e982f98f12877
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-05-13 08:50:26 +00:00
committed by Automerger Merge Worker

View File

@@ -124,8 +124,10 @@ public final class DreamManagerService extends SystemService {
final boolean activityAllowed = activityType == ACTIVITY_TYPE_HOME final boolean activityAllowed = activityType == ACTIVITY_TYPE_HOME
|| activityType == ACTIVITY_TYPE_DREAM || activityType == ACTIVITY_TYPE_DREAM
|| activityType == ACTIVITY_TYPE_ASSISTANT; || activityType == ACTIVITY_TYPE_ASSISTANT;
if (mCurrentDreamToken != null && !mCurrentDreamIsWaking && !activityAllowed) { if (mCurrentDreamToken != null && !mCurrentDreamIsWaking
stopDreamInternal(false, "activity starting: " + activityInfo.name); && !mCurrentDreamIsDozing && !activityAllowed) {
requestAwakenInternal(
"stopping dream due to activity start: " + activityInfo.name);
} }
} }
}; };
@@ -229,13 +231,13 @@ public final class DreamManagerService extends SystemService {
mPowerManager.nap(time); mPowerManager.nap(time);
} }
private void requestAwakenInternal() { private void requestAwakenInternal(String reason) {
// Treat an explicit request to awaken as user activity so that the // Treat an explicit request to awaken as user activity so that the
// device doesn't immediately go to sleep if the timeout expired, // device doesn't immediately go to sleep if the timeout expired,
// for example when being undocked. // for example when being undocked.
long time = SystemClock.uptimeMillis(); long time = SystemClock.uptimeMillis();
mPowerManager.userActivity(time, false /*noChangeLights*/); mPowerManager.userActivity(time, false /*noChangeLights*/);
stopDreamInternal(false /*immediate*/, "request awaken"); stopDreamInternal(false /*immediate*/, reason);
} }
private void finishSelfInternal(IBinder token, boolean immediate) { private void finishSelfInternal(IBinder token, boolean immediate) {
@@ -715,7 +717,7 @@ public final class DreamManagerService extends SystemService {
final long ident = Binder.clearCallingIdentity(); final long ident = Binder.clearCallingIdentity();
try { try {
requestAwakenInternal(); requestAwakenInternal("request awaken");
} finally { } finally {
Binder.restoreCallingIdentity(ident); Binder.restoreCallingIdentity(ident);
} }