diff options
Diffstat (limited to 'packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java')
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index 73c2840..ba67a82 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -215,8 +215,29 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mUserHasTrust.put(userId, enabled); } + private boolean isTrustDisabled(int userId) { + final DevicePolicyManager dpm = + (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); + if (dpm != null) { + // TODO once UI is finalized + final boolean disabledByGlobalActions = false; + final boolean disabledBySettings = false; + + // Don't allow trust agent if device is secured with a SIM PIN. This is here + // mainly because there's no other way to prompt the user to enter their SIM PIN + // once they get past the keyguard screen. + final boolean disabledBySimPin = isSimPinSecure(); + + final boolean disabledByDpm = (dpm.getKeyguardDisabledFeatures(null, userId) + & DevicePolicyManager.KEYGUARD_DISABLE_TRUST_AGENTS) != 0; + return disabledByDpm || disabledByGlobalActions || disabledBySettings + || disabledBySimPin; + } + return false; + } + public boolean getUserHasTrust(int userId) { - return mUserHasTrust.get(userId); + return !isTrustDisabled(userId) && mUserHasTrust.get(userId); } static class DisplayClientState { |