summaryrefslogtreecommitdiff
path: root/packages/Keyguard
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2016-08-16 16:02:32 -0700
committerJorim Jaggi <jjaggi@google.com>2016-08-17 18:10:54 +0000
commitd11d1a9486d44b98e28b70c25711ebfc283b746e (patch)
tree7ccc893d6ebee09b8dc7e4ddbcb0a84c1655c2fa /packages/Keyguard
parent8aacc3cf982697cbd35baf7bde2a2940393de177 (diff)
Fix a flicker when returning to the lockscreen
If we return to the lockscreen from a FLAG_SHOW_WHEN_LOCKED activity, there was an additional black flicker as the wallpaper wasn't shown for a couple of frames. The issue is that we didn't set the wallpaper flag again, to fix another flicker with lockscreen wallpapers. Now, we pass the state whether we currently have a lockscreen wallpaper and if we don't have one, we immediately set the wallpaper flag again. Bug: 30829255 Bug: 30883413 Change-Id: I9faeaa77b98eb02058171ce19cf90b43826ebe9e
Diffstat (limited to 'packages/Keyguard')
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java25
-rw-r--r--packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java5
2 files changed, 30 insertions, 0 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
index 0a862914b14f..56f37414a0e6 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java
@@ -178,6 +178,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
private boolean mBouncer;
private boolean mBootCompleted;
private boolean mUserUnlocked;
+ private boolean mHasLockscreenWallpaper;
// Device provisioning state
private boolean mDeviceProvisioned;
@@ -1173,6 +1174,30 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
}
/**
+ * Update the state whether Keyguard currently has a lockscreen wallpaper.
+ *
+ * @param hasLockscreenWallpaper Whether Keyguard has a lockscreen wallpaper.
+ */
+ public void setHasLockscreenWallpaper(boolean hasLockscreenWallpaper) {
+ if (hasLockscreenWallpaper != mHasLockscreenWallpaper) {
+ mHasLockscreenWallpaper = hasLockscreenWallpaper;
+ for (int i = mCallbacks.size() - 1; i >= 0; i--) {
+ KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
+ if (cb != null) {
+ cb.onHasLockscreenWallpaperChanged(hasLockscreenWallpaper);
+ }
+ }
+ }
+ }
+
+ /**
+ * @return Whether Keyguard has a lockscreen wallpaper.
+ */
+ public boolean hasLockscreenWallpaper() {
+ return mHasLockscreenWallpaper;
+ }
+
+ /**
* Handle {@link #MSG_DPM_STATE_CHANGED}
*/
protected void handleDevicePolicyManagerStateChanged() {
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
index bd6c51c3b89c..4a2d356b6ddd 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java
@@ -240,4 +240,9 @@ public class KeyguardUpdateMonitorCallback {
* has changed.
*/
public void onStrongAuthStateChanged(int userId) { }
+
+ /**
+ * Called when the state whether we have a lockscreen wallpaper has changed.
+ */
+ public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { }
}