Merge "Check wallpaper visibility to determine if wallpaper is obscuring apps."
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 2f916d9..880514c 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -1260,8 +1260,11 @@
* it may obscure windows behind it.
*/
boolean isOpaqueDrawn() {
- return (mAttrs.format == PixelFormat.OPAQUE
- || mAttrs.type == TYPE_WALLPAPER)
+ // When there is keyguard, wallpaper could be placed over the secure app
+ // window but invisible. We need to check wallpaper visibility explicitly
+ // to determine if it's occluding apps.
+ return ((!mIsWallpaper && mAttrs.format == PixelFormat.OPAQUE)
+ || (mIsWallpaper && mWallpaperVisible))
&& isDrawnLw() && mWinAnimator.mAnimation == null
&& (mAppToken == null || mAppToken.mAppAnimator.animation == null);
}