Merge "Revert "Intent API for background restriction settings"" into main
diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java
index 4060b24..eee4668 100644
--- a/core/java/android/service/dreams/DreamService.java
+++ b/core/java/android/service/dreams/DreamService.java
@@ -263,6 +263,7 @@
private boolean mCanDoze;
private boolean mDozing;
private boolean mWindowless;
+ private boolean mPreviewMode;
private int mDozeScreenState = Display.STATE_UNKNOWN;
private int mDozeScreenBrightness = PowerManager.BRIGHTNESS_DEFAULT;
@@ -647,12 +648,13 @@
}
/**
- * Marks this dream as keeping the screen bright while dreaming.
+ * Marks this dream as keeping the screen bright while dreaming. In preview mode, the screen
+ * is always allowed to dim and overrides the value specified here.
*
* @param screenBright True to keep the screen bright while dreaming.
*/
public void setScreenBright(boolean screenBright) {
- if (mScreenBright != screenBright) {
+ if (mScreenBright != screenBright && !mPreviewMode) {
mScreenBright = screenBright;
int flag = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
applyWindowFlags(mScreenBright ? flag : 0, flag);
@@ -661,7 +663,7 @@
/**
* Returns whether this dream keeps the screen bright while dreaming.
- * Defaults to false, allowing the screen to dim if necessary.
+ * Defaults to true, preventing the screen from dimming.
*
* @see #setScreenBright(boolean)
*/
@@ -1280,6 +1282,11 @@
mDreamToken = dreamToken;
mCanDoze = canDoze;
+ mPreviewMode = isPreviewMode;
+ if (mPreviewMode) {
+ // Allow screen to dim when in preview mode.
+ mScreenBright = false;
+ }
// This is not a security check to prevent malicious dreams but a guard rail to stop
// third-party dreams from being windowless and not working well as a result.
if (mWindowless && !mCanDoze && !isCallerSystemUi()) {