Loading core/java/com/android/internal/policy/IKeyguardStateCallback.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -20,4 +20,5 @@ interface IKeyguardStateCallback { void onSimSecureStateChanged(boolean simSecure); void onInputRestrictedStateChanged(boolean inputRestricted); void onTrustedChanged(boolean trusted); void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper); } No newline at end of file packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +25 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -1172,6 +1173,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} */ Loading packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java +5 −0 Original line number Diff line number Diff line Loading @@ -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) { } } packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +27 −8 Original line number Diff line number Diff line Loading @@ -16,7 +16,11 @@ package com.android.systemui.keyguard; import android.annotation.UserIdInt; import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManagerNative; Loading Loading @@ -82,12 +86,6 @@ import com.android.systemui.statusbar.phone.StatusBarWindowManager; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; /** * Mediates requests related to the keyguard. This includes queries about the Loading Loading @@ -509,7 +507,12 @@ public class KeyguardViewMediator extends SystemUI { } } @Override public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { synchronized (KeyguardViewMediator.this) { notifyHasLockscreenWallpaperChanged(hasLockscreenWallpaper); } } }; ViewMediatorCallback mViewMediatorCallback = new ViewMediatorCallback() { Loading Loading @@ -2014,6 +2017,21 @@ public class KeyguardViewMediator extends SystemUI { } } private void notifyHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { int size = mKeyguardStateCallbacks.size(); for (int i = size - 1; i >= 0; i--) { try { mKeyguardStateCallbacks.get(i).onHasLockscreenWallpaperChanged( hasLockscreenWallpaper); } catch (RemoteException e) { Slog.w(TAG, "Failed to call onHasLockscreenWallpaperChanged", e); if (e instanceof DeadObjectException) { mKeyguardStateCallbacks.remove(i); } } } } public void addStateMonitorCallback(IKeyguardStateCallback callback) { synchronized (this) { mKeyguardStateCallbacks.add(callback); Loading @@ -2023,6 +2041,7 @@ public class KeyguardViewMediator extends SystemUI { callback.onInputRestrictedStateChanged(mInputRestricted); callback.onTrustedChanged(mUpdateMonitor.getUserHasTrust( KeyguardUpdateMonitor.getCurrentUser())); callback.onHasLockscreenWallpaperChanged(mUpdateMonitor.hasLockscreenWallpaper()); } catch (RemoteException e) { Slog.w(TAG, "Failed to call to IKeyguardStateCallback", e); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java +6 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.util.Log; import com.android.keyguard.KeyguardUpdateMonitor; import libcore.io.IoUtils; import java.util.Objects; Loading @@ -52,6 +54,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen private final PhoneStatusBar mBar; private final WallpaperManager mWallpaperManager; private final Handler mH; private final KeyguardUpdateMonitor mUpdateMonitor; private boolean mCached; private Bitmap mCache; Loading @@ -66,6 +69,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen mH = h; mWallpaperManager = (WallpaperManager) ctx.getSystemService(Context.WALLPAPER_SERVICE); mCurrentUserId = ActivityManager.getCurrentUser(); mUpdateMonitor = KeyguardUpdateMonitor.getInstance(ctx); IWallpaperManager service = IWallpaperManager.Stub.asInterface( ServiceManager.getService(Context.WALLPAPER_SERVICE)); Loading @@ -89,6 +93,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen LoaderResult result = loadBitmap(mCurrentUserId, mSelectedUser); if (result.success) { mCached = true; mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null); mCache = result.bitmap; } return mCache; Loading Loading @@ -181,6 +186,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen if (result.success) { mCached = true; mCache = result.bitmap; mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null); mBar.updateMediaMetaData( true /* metaDataChanged */, true /* allowEnterAnimation */); } Loading Loading
core/java/com/android/internal/policy/IKeyguardStateCallback.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -20,4 +20,5 @@ interface IKeyguardStateCallback { void onSimSecureStateChanged(boolean simSecure); void onInputRestrictedStateChanged(boolean inputRestricted); void onTrustedChanged(boolean trusted); void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper); } No newline at end of file
packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +25 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -1172,6 +1173,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} */ Loading
packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java +5 −0 Original line number Diff line number Diff line Loading @@ -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) { } }
packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +27 −8 Original line number Diff line number Diff line Loading @@ -16,7 +16,11 @@ package com.android.systemui.keyguard; import android.annotation.UserIdInt; import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManagerNative; Loading Loading @@ -82,12 +86,6 @@ import com.android.systemui.statusbar.phone.StatusBarWindowManager; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; /** * Mediates requests related to the keyguard. This includes queries about the Loading Loading @@ -509,7 +507,12 @@ public class KeyguardViewMediator extends SystemUI { } } @Override public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { synchronized (KeyguardViewMediator.this) { notifyHasLockscreenWallpaperChanged(hasLockscreenWallpaper); } } }; ViewMediatorCallback mViewMediatorCallback = new ViewMediatorCallback() { Loading Loading @@ -2014,6 +2017,21 @@ public class KeyguardViewMediator extends SystemUI { } } private void notifyHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { int size = mKeyguardStateCallbacks.size(); for (int i = size - 1; i >= 0; i--) { try { mKeyguardStateCallbacks.get(i).onHasLockscreenWallpaperChanged( hasLockscreenWallpaper); } catch (RemoteException e) { Slog.w(TAG, "Failed to call onHasLockscreenWallpaperChanged", e); if (e instanceof DeadObjectException) { mKeyguardStateCallbacks.remove(i); } } } } public void addStateMonitorCallback(IKeyguardStateCallback callback) { synchronized (this) { mKeyguardStateCallbacks.add(callback); Loading @@ -2023,6 +2041,7 @@ public class KeyguardViewMediator extends SystemUI { callback.onInputRestrictedStateChanged(mInputRestricted); callback.onTrustedChanged(mUpdateMonitor.getUserHasTrust( KeyguardUpdateMonitor.getCurrentUser())); callback.onHasLockscreenWallpaperChanged(mUpdateMonitor.hasLockscreenWallpaper()); } catch (RemoteException e) { Slog.w(TAG, "Failed to call to IKeyguardStateCallback", e); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/LockscreenWallpaper.java +6 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.util.Log; import com.android.keyguard.KeyguardUpdateMonitor; import libcore.io.IoUtils; import java.util.Objects; Loading @@ -52,6 +54,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen private final PhoneStatusBar mBar; private final WallpaperManager mWallpaperManager; private final Handler mH; private final KeyguardUpdateMonitor mUpdateMonitor; private boolean mCached; private Bitmap mCache; Loading @@ -66,6 +69,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen mH = h; mWallpaperManager = (WallpaperManager) ctx.getSystemService(Context.WALLPAPER_SERVICE); mCurrentUserId = ActivityManager.getCurrentUser(); mUpdateMonitor = KeyguardUpdateMonitor.getInstance(ctx); IWallpaperManager service = IWallpaperManager.Stub.asInterface( ServiceManager.getService(Context.WALLPAPER_SERVICE)); Loading @@ -89,6 +93,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen LoaderResult result = loadBitmap(mCurrentUserId, mSelectedUser); if (result.success) { mCached = true; mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null); mCache = result.bitmap; } return mCache; Loading Loading @@ -181,6 +186,7 @@ public class LockscreenWallpaper extends IWallpaperManagerCallback.Stub implemen if (result.success) { mCached = true; mCache = result.bitmap; mUpdateMonitor.setHasLockscreenWallpaper(result.bitmap != null); mBar.updateMediaMetaData( true /* metaDataChanged */, true /* allowEnterAnimation */); } Loading