Show lockscreen wallpaper on SIM screens
Also fixes a bug where the lockscreen wallpaper was showing in occluded mode and where the regular wallpaper was flashing when going back from occluded mode. Change-Id: Ibe6404acc4ed5db8807b3ef223b149e841730c8f Fixes: 28271756
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -247,6 +247,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb
|
||||
}
|
||||
}
|
||||
mOccluded = occluded;
|
||||
mPhoneStatusBar.updateMediaMetaData(false, false);
|
||||
mStatusBarWindowManager.setKeyguardOccluded(occluded);
|
||||
reset();
|
||||
}
|
||||
|
||||
@@ -5145,7 +5145,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;
|
||||
|
||||
Reference in New Issue
Block a user