Merge "Add new "pin complex" type to supported keyguard PINs"

This commit is contained in:
Jim Miller
2014-07-10 02:13:11 +00:00
committed by Android (Google) Code Review
5 changed files with 19 additions and 5 deletions

View File

@@ -996,6 +996,9 @@
<!-- Error shown when in PASSWORD mode and password has been used recently. Please keep this string short! --> <!-- Error shown when in PASSWORD mode and password has been used recently. Please keep this string short! -->
<string name="lockpassword_password_recently_used">Device administrator doesn\'t allow using a recent password.</string> <string name="lockpassword_password_recently_used">Device administrator doesn\'t allow using a recent password.</string>
<!-- [CHAR_LIMIT=NONE] Error shown when the user tries to set an ascending or descending sequence of digits -->
<string name="lockpassword_pin_no_sequential_digits">An ascending, descending or repeated sequence of digits is forbidden</string>
<!-- Label for ChoosePassword/PIN OK button --> <!-- Label for ChoosePassword/PIN OK button -->
<string name="lockpassword_ok_label">OK</string> <string name="lockpassword_ok_label">OK</string>

View File

@@ -278,7 +278,7 @@ public class ChooseLockGeneric extends SettingsActivity {
} else if (KEY_UNLOCK_SET_PATTERN.equals(key)) { } else if (KEY_UNLOCK_SET_PATTERN.equals(key)) {
enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_SOMETHING; enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
} else if (KEY_UNLOCK_SET_PIN.equals(key)) { } else if (KEY_UNLOCK_SET_PIN.equals(key)) {
enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC; enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
} else if (KEY_UNLOCK_SET_PASSWORD.equals(key)) { } else if (KEY_UNLOCK_SET_PASSWORD.equals(key)) {
enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_COMPLEX; enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
} }

View File

@@ -329,10 +329,18 @@ public class ChooseLockPassword extends SettingsActivity {
} }
} }
if (DevicePolicyManager.PASSWORD_QUALITY_NUMERIC == mRequestedQuality if (DevicePolicyManager.PASSWORD_QUALITY_NUMERIC == mRequestedQuality
&& (letters > 0 || symbols > 0)) { || DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX == mRequestedQuality) {
// This shouldn't be possible unless user finds some way to bring up if (letters > 0 || symbols > 0) {
// soft keyboard // This shouldn't be possible unless user finds some way to bring up
return getString(R.string.lockpassword_pin_contains_non_digits); // soft keyboard
return getString(R.string.lockpassword_pin_contains_non_digits);
}
// Check for repeated characters or sequences (e.g. '1234', '0000', '2468')
final int sequence = LockPatternUtils.maxLengthSequence(password);
if (DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX == mRequestedQuality
&& sequence > LockPatternUtils.MAX_ALLOWED_SEQUENCE) {
return getString(R.string.lockpassword_pin_no_sequential_digits);
}
} else if (DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == mRequestedQuality) { } else if (DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == mRequestedQuality) {
if (letters < mPasswordMinLetters) { if (letters < mPasswordMinLetters) {
return String.format(getResources().getQuantityString( return String.format(getResources().getQuantityString(
@@ -375,6 +383,7 @@ public class ChooseLockPassword extends SettingsActivity {
return getString(mIsAlphaMode ? R.string.lockpassword_password_recently_used return getString(mIsAlphaMode ? R.string.lockpassword_password_recently_used
: R.string.lockpassword_pin_recently_used); : R.string.lockpassword_pin_recently_used);
} }
return null; return null;
} }

View File

@@ -60,6 +60,7 @@ public final class ChooseLockSettingsHelper {
launched = confirmPattern(request, message, details); launched = confirmPattern(request, message, details);
break; break;
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC: case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC: case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX: case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:

View File

@@ -151,6 +151,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
resid = R.xml.security_settings_pattern; resid = R.xml.security_settings_pattern;
break; break;
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC: case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
resid = R.xml.security_settings_pin; resid = R.xml.security_settings_pin;
break; break;
case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC: case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC: