diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 23e3561710a38..f7ecd61e15685 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -1985,19 +1985,29 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, artworkDrawable = new BitmapDrawable(mBackdropBack.getResources(), artworkBitmap); } } + boolean allowWhenShade = false; if (ENABLE_LOCKSCREEN_WALLPAPER && artworkDrawable == null) { Bitmap lockWallpaper = mLockscreenWallpaper.getBitmap(); if (lockWallpaper != null) { artworkDrawable = new LockscreenWallpaper.WallpaperDrawable( mBackdropBack.getResources(), lockWallpaper); + // We're in the SHADE mode on the SIM screen - yet we still need to show + // the lockscreen wallpaper in that mode. + allowWhenShade = mStatusBarKeyguardViewManager != null + && mStatusBarKeyguardViewManager.isShowing(); } } + boolean hideBecauseOccluded = mStatusBarKeyguardViewManager != null + && mStatusBarKeyguardViewManager.isOccluded(); + final boolean hasArtwork = artworkDrawable != null; - if ((hasArtwork || DEBUG_MEDIA_FAKE_ARTWORK) && mState != StatusBarState.SHADE + if ((hasArtwork || DEBUG_MEDIA_FAKE_ARTWORK) + && (mState != StatusBarState.SHADE || allowWhenShade) && mFingerprintUnlockController.getMode() - != FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING) { + != FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING + && !hideBecauseOccluded) { // time to show some art! if (mBackdrop.getVisibility() != View.VISIBLE) { mBackdrop.setVisibility(View.VISIBLE); @@ -2065,7 +2075,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, Log.v(TAG, "DEBUG_MEDIA: Fading out album artwork"); } if (mFingerprintUnlockController.getMode() - == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING) { + == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING + || hideBecauseOccluded) { // We are unlocking directly - no animation! mBackdrop.setVisibility(View.GONE); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 117e2b325ef72..dcad75aff116d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -247,6 +247,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb } } mOccluded = occluded; + mPhoneStatusBar.updateMediaMetaData(false, false); mStatusBarWindowManager.setKeyguardOccluded(occluded); reset(); } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 827ea5b5be09e..2636d09590662 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -5159,7 +5159,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { mKeyguardOccluded = false; mKeyguardDelegate.setOccluded(false); mStatusBar.getAttrs().privateFlags |= PRIVATE_FLAG_KEYGUARD; - mStatusBar.getAttrs().flags |= FLAG_SHOW_WALLPAPER; return true; } else if (!wasOccluded && isOccluded && showing) { mKeyguardOccluded = true;