diff options
author | Adrian Roos <roosa@google.com> | 2015-01-15 23:20:20 +0100 |
---|---|---|
committer | Adrian Roos <roosa@google.com> | 2015-02-03 19:12:23 +0100 |
commit | c2e01683b34029729262e2fb346ceea4bfe4b4b6 (patch) | |
tree | 0c12607980e306a1b78e11d5c23dd2d2e90df910 /packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java | |
parent | 5656036dd779fd81d89b755b871e85fa6d959c4f (diff) | |
download | frameworks_base-c2e01683b34029729262e2fb346ceea4bfe4b4b6.zip frameworks_base-c2e01683b34029729262e2fb346ceea4bfe4b4b6.tar.gz frameworks_base-c2e01683b34029729262e2fb346ceea4bfe4b4b6.tar.bz2 |
Remove UI code from LockPatternUtils
Bug: 18931518
Change-Id: I951166f675731ec7a2bc51585e0a51e0cd92611d
Diffstat (limited to 'packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java')
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java | 68 |
1 files changed, 32 insertions, 36 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java index 107f417..3eb31ad 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityModel.java @@ -17,20 +17,16 @@ package com.android.keyguard; import android.app.admin.DevicePolicyManager; import android.content.Context; -import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; -import android.telephony.TelephonyManager; import com.android.internal.telephony.IccCardConstants; import com.android.internal.widget.LockPatternUtils; -import java.util.List; - public class KeyguardSecurityModel { /** - * The different types of security available for {@link Mode#UnlockScreen}. - * @see com.android.internal.policy.impl.LockPatternKeyguardView#getUnlockMode() + * The different types of security available. + * @see KeyguardSecurityContainer#showSecurityScreen */ public enum SecurityMode { Invalid, // NULL state @@ -42,12 +38,16 @@ public class KeyguardSecurityModel { SimPuk // Unlock by entering a sim puk } - private Context mContext; + private final Context mContext; + private final boolean mIsPukScreenAvailable; + private LockPatternUtils mLockPatternUtils; KeyguardSecurityModel(Context context) { mContext = context; mLockPatternUtils = new LockPatternUtils(context); + mIsPukScreenAvailable = mContext.getResources().getBoolean( + com.android.internal.R.bool.config_enable_puk_unlock_screen); } void setLockPatternUtils(LockPatternUtils utils) { @@ -56,39 +56,35 @@ public class KeyguardSecurityModel { SecurityMode getSecurityMode() { KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext); - SecurityMode mode = SecurityMode.None; + if (SubscriptionManager.isValidSubscriptionId( monitor.getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED))) { - mode = SecurityMode.SimPin; - } else if (SubscriptionManager.isValidSubscriptionId( - monitor.getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED)) - && mLockPatternUtils.isPukUnlockScreenEnable()) { - mode = SecurityMode.SimPuk; - } else { - final int security = mLockPatternUtils.getKeyguardStoredPasswordQuality(); - switch (security) { - case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: - case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX: - mode = mLockPatternUtils.isLockPasswordEnabled() ? - SecurityMode.PIN : SecurityMode.None; - break; - case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC: - case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC: - case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX: - mode = mLockPatternUtils.isLockPasswordEnabled() ? - SecurityMode.Password : SecurityMode.None; - break; + return SecurityMode.SimPin; + } + + if (mIsPukScreenAvailable && SubscriptionManager.isValidSubscriptionId( + monitor.getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED))) { + return SecurityMode.SimPuk; + } + + final int security = mLockPatternUtils.getActivePasswordQuality(); + switch (security) { + case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: + case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX: + return SecurityMode.PIN; + + case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC: + case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC: + case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX: + return SecurityMode.Password; - case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: - case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED: - mode = mLockPatternUtils.isLockPatternEnabled() ? - SecurityMode.Pattern : SecurityMode.None; - break; + case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING: + return SecurityMode.Pattern; + case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED: + return SecurityMode.None; - default: - throw new IllegalStateException("Unknown security quality:" + security); - } + default: + throw new IllegalStateException("Unknown security quality:" + security); } - return mode; } } |