diff options
author | Jason Monk <jmonk@google.com> | 2014-12-10 21:04:24 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-12-10 21:04:27 +0000 |
commit | 4ef9edeb67a1aa25b4ec57b9951b8dc4a06c3691 (patch) | |
tree | f0a55b85227a135e967f70fd2ec68dfceefc9d77 | |
parent | f441557d89cab8885940bb63a27159f576749f96 (diff) | |
parent | 4a3daac72b327e3f400581541f4044311ce103dc (diff) | |
download | frameworks_base-4ef9edeb67a1aa25b4ec57b9951b8dc4a06c3691.zip frameworks_base-4ef9edeb67a1aa25b4ec57b9951b8dc4a06c3691.tar.gz frameworks_base-4ef9edeb67a1aa25b4ec57b9951b8dc4a06c3691.tar.bz2 |
Merge "Handle policy change while keyguard disabled" into lmp-mr1-dev
-rw-r--r-- | services/core/java/com/android/server/wm/KeyguardDisableHandler.java | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/services/core/java/com/android/server/wm/KeyguardDisableHandler.java b/services/core/java/com/android/server/wm/KeyguardDisableHandler.java index c1420a8..37d811f 100644 --- a/services/core/java/com/android/server/wm/KeyguardDisableHandler.java +++ b/services/core/java/com/android/server/wm/KeyguardDisableHandler.java @@ -68,9 +68,18 @@ public class KeyguardDisableHandler extends Handler { break; case KEYGUARD_POLICY_CHANGED: - mPolicy.enableKeyguard(true); - // lazily evaluate this next time we're asked to disable keyguard mAllowDisableKeyguard = ALLOW_DISABLE_UNKNOWN; + if (mKeyguardTokenWatcher.isAcquired()) { + // If we are currently disabled we need to know if the keyguard + // should be re-enabled, so determine the allow state immediately. + mKeyguardTokenWatcher.updateAllowState(); + if (mAllowDisableKeyguard != ALLOW_DISABLE_YES) { + mPolicy.enableKeyguard(true); + } + } else { + // lazily evaluate this next time we're asked to disable keyguard + mPolicy.enableKeyguard(true); + } break; } } @@ -81,24 +90,28 @@ public class KeyguardDisableHandler extends Handler { super(handler, TAG); } - @Override - public void acquired() { + public void updateAllowState() { // We fail safe and prevent disabling keyguard in the unlikely event this gets // called before DevicePolicyManagerService has started. - if (mAllowDisableKeyguard == ALLOW_DISABLE_UNKNOWN) { - DevicePolicyManager dpm = (DevicePolicyManager) mContext.getSystemService( - Context.DEVICE_POLICY_SERVICE); - if (dpm != null) { - try { - mAllowDisableKeyguard = dpm.getPasswordQuality(null, - ActivityManagerNative.getDefault().getCurrentUser().id) - == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED ? - ALLOW_DISABLE_YES : ALLOW_DISABLE_NO; - } catch (RemoteException re) { - // Nothing much we can do - } + DevicePolicyManager dpm = (DevicePolicyManager) mContext.getSystemService( + Context.DEVICE_POLICY_SERVICE); + if (dpm != null) { + try { + mAllowDisableKeyguard = dpm.getPasswordQuality(null, + ActivityManagerNative.getDefault().getCurrentUser().id) + == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED ? + ALLOW_DISABLE_YES : ALLOW_DISABLE_NO; + } catch (RemoteException re) { + // Nothing much we can do } } + } + + @Override + public void acquired() { + if (mAllowDisableKeyguard == ALLOW_DISABLE_UNKNOWN) { + updateAllowState(); + } if (mAllowDisableKeyguard == ALLOW_DISABLE_YES) { mPolicy.enableKeyguard(false); } else { |