Scrims should be grey when in-app
Bug: 38164389
Test: runtest -x colorextraction/tests/src/com/google/android/colorextraction/ColorExtractorTest.java
Test: runtest -x tests/src/com/android/systemui/colorextraction/SysuiColorExtractorTests.java
Change-Id: Ifcc04a8562e46b4f65bce0470ccd6c02dffcf377
(cherry picked from commit e1571705e6ea8367e7ee93d61104ce27035492dc)
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 54983c8..fbe6f94 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -210,6 +210,7 @@
final DisplayMetrics mRealDisplayMetrics = new DisplayMetrics();
/** @see #computeCompatSmallestWidth(boolean, int, int, int, int) */
private final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics();
+
/**
* Compat metrics computed based on {@link #mDisplayMetrics}.
* @see #updateDisplayAndOrientation(int)
@@ -226,6 +227,7 @@
* @see #updateRotationUnchecked(boolean)
*/
private int mRotation = 0;
+
/**
* Last applied orientation of the display.
* Constants as per {@link android.content.pm.ActivityInfo.ScreenOrientation}.
@@ -233,6 +235,7 @@
* @see WindowManagerService#updateOrientationFromAppTokensLocked(boolean, int)
*/
private int mLastOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
+
/**
* Flag indicating that the application is receiving an orientation that has different metrics
* than it expected. E.g. Portrait instead of Landscape.
@@ -240,6 +243,7 @@
* @see #updateRotationUnchecked(boolean)
*/
private boolean mAltOrientation = false;
+
/**
* Orientation forced by some window. If there is no visible window that specifies orientation
* it is set to {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_UNSPECIFIED}.
@@ -247,6 +251,7 @@
* @see NonAppWindowContainers#getOrientation()
*/
private int mLastWindowForcedOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
+
/**
* Last orientation forced by the keyguard. It is applied when keyguard is shown and is not
* occluded.
@@ -255,6 +260,11 @@
*/
private int mLastKeyguardForcedOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
+ /**
+ * Keep track of wallpaper visibility to notify changes.
+ */
+ private boolean mLastWallpaperVisible = false;
+
private Rect mBaseDisplayRect = new Rect();
private Rect mContentRect = new Rect();
@@ -2765,6 +2775,12 @@
stopDimmingIfNeeded();
+ final boolean wallpaperVisible = mWallpaperController.isWallpaperVisible();
+ if (wallpaperVisible != mLastWallpaperVisible) {
+ mLastWallpaperVisible = wallpaperVisible;
+ mService.mWallpaperVisibilityListeners.notifyWallpaperVisibilityChanged(this);
+ }
+
while (!mTmpUpdateAllDrawn.isEmpty()) {
final AppWindowToken atoken = mTmpUpdateAllDrawn.removeLast();
// See if any windows have been drawn, so they (and others associated with them)