Merge "Add a method in IDreamManager to check if dreaming OR in dream preview" into tm-qpr-dev am: 3448c2fe1c

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

Change-Id: I003dde1065c5d16c44bd63d7693b593d157fe47e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Mady Mellor
2022-08-17 19:25:56 +00:00
committed by Automerger Merge Worker
2 changed files with 23 additions and 0 deletions

View File

@@ -35,6 +35,8 @@ interface IDreamManager {
void testDream(int userId, in ComponentName componentName);
@UnsupportedAppUsage
boolean isDreaming();
@UnsupportedAppUsage
boolean isDreamingOrInPreview();
void finishSelf(in IBinder token, boolean immediate);
void startDozing(in IBinder token, int screenState, int screenBrightness);
void stopDozing(in IBinder token);

View File

@@ -218,6 +218,7 @@ public final class DreamManagerService extends SystemService {
}, pw, "", 200);
}
/** Whether a real dream is occurring. */
private boolean isDreamingInternal() {
synchronized (mLock) {
return mCurrentDreamToken != null && !mCurrentDreamIsPreview
@@ -225,6 +226,13 @@ public final class DreamManagerService extends SystemService {
}
}
/** Whether a real dream, or a dream preview is occurring. */
private boolean isDreamingOrInPreviewInternal() {
synchronized (mLock) {
return mCurrentDreamToken != null && !mCurrentDreamIsWaking;
}
}
protected void requestStartDreamFromShell() {
requestDreamInternal();
}
@@ -694,6 +702,19 @@ public final class DreamManagerService extends SystemService {
}
}
@Override // Binder call
public boolean isDreamingOrInPreview() {
checkPermission(android.Manifest.permission.READ_DREAM_STATE);
final long ident = Binder.clearCallingIdentity();
try {
return isDreamingOrInPreviewInternal();
} finally {
Binder.restoreCallingIdentity(ident);
}
}
@Override // Binder call
public void dream() {
checkPermission(android.Manifest.permission.WRITE_DREAM_STATE);