summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/ChooseLockPassword.java
diff options
context:
space:
mode:
authorKonstantin Lopyrev <klopyrev@google.com>2010-06-04 17:27:53 -0700
committerKonstantin Lopyrev <klopyrev@google.com>2010-06-07 18:35:10 -0700
commit2df65e4facac659314c2440d0af6316924166e2b (patch)
treea22ef210e61b5b7d617c03ce36537e1101383b59 /src/com/android/settings/ChooseLockPassword.java
parent660ad5e3e2f8f313dd475500ebc942ddd71fbd99 (diff)
downloadpackages_apps_Settings-2df65e4facac659314c2440d0af6316924166e2b.zip
packages_apps_Settings-2df65e4facac659314c2440d0af6316924166e2b.tar.gz
packages_apps_Settings-2df65e4facac659314c2440d0af6316924166e2b.tar.bz2
Adding support for minimum non-letter characters.
Change-Id: I1eb96e3b88a368f1d92acdf71974fcd8fda1caab
Diffstat (limited to 'src/com/android/settings/ChooseLockPassword.java')
-rw-r--r--src/com/android/settings/ChooseLockPassword.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index 13c9836..4d447f4 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -53,6 +53,7 @@ public class ChooseLockPassword extends Activity implements OnClickListener, OnE
private int mPasswordMinLowerCase = 0;
private int mPasswordMinSymbols = 0;
private int mPasswordMinNumeric = 0;
+ private int mPasswordMinNonLetter = 0;
private LockPatternUtils mLockPatternUtils;
private int mRequestedQuality = DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
private ChooseLockSettingsHelper mChooseLockSettingsHelper;
@@ -71,6 +72,7 @@ public class ChooseLockPassword extends Activity implements OnClickListener, OnE
public static final String PASSWORD_MIN_UPPERCASE_KEY = "lockscreen.password_min_uppercase";
public static final String PASSWORD_MIN_NUMERIC_KEY = "lockscreen.password_min_numeric";
public static final String PASSWORD_MIN_SYMBOLS_KEY = "lockscreen.password_min_symbols";
+ public static final String PASSWORD_MIN_NONLETTER_KEY = "lockscreen.password_min_nonletter";
private static Handler mHandler = new Handler();
private static final int CONFIRM_EXISTING_REQUEST = 58;
static final int RESULT_FINISHED = RESULT_FIRST_USER;
@@ -127,6 +129,8 @@ public class ChooseLockPassword extends Activity implements OnClickListener, OnE
mPasswordMinNumeric), mLockPatternUtils.getRequestedPasswordMinimumNumeric());
mPasswordMinSymbols = Math.max(getIntent().getIntExtra(PASSWORD_MIN_SYMBOLS_KEY,
mPasswordMinSymbols), mLockPatternUtils.getRequestedPasswordMinimumSymbols());
+ mPasswordMinNonLetter = Math.max(getIntent().getIntExtra(PASSWORD_MIN_NONLETTER_KEY,
+ mPasswordMinNonLetter), mLockPatternUtils.getRequestedPasswordMinimumNonLetter());
final boolean confirmCredentials = getIntent().getBooleanExtra("confirm_credentials", true);
@@ -234,6 +238,7 @@ public class ChooseLockPassword extends Activity implements OnClickListener, OnE
int lowercase = 0;
int symbols = 0;
int uppercase = 0;
+ int nonletter = 0;
for (int i = 0; i < password.length(); i++) {
char c = password.charAt(i);
// allow non white space Latin-1 characters only
@@ -242,6 +247,7 @@ public class ChooseLockPassword extends Activity implements OnClickListener, OnE
}
if (c >= '0' && c <= '9') {
numbers++;
+ nonletter++;
} else if (c >= 'A' && c <= 'Z') {
letters++;
uppercase++;
@@ -250,6 +256,7 @@ public class ChooseLockPassword extends Activity implements OnClickListener, OnE
lowercase++;
} else {
symbols++;
+ nonletter++;
}
}
if (DevicePolicyManager.PASSWORD_QUALITY_NUMERIC == mRequestedQuality
@@ -278,6 +285,10 @@ public class ChooseLockPassword extends Activity implements OnClickListener, OnE
return String.format(getResources().getQuantityString(
R.plurals.lockpassword_password_requires_symbols, mPasswordMinSymbols),
mPasswordMinSymbols);
+ } else if (nonletter < mPasswordMinNonLetter) {
+ return String.format(getResources().getQuantityString(
+ R.plurals.lockpassword_password_requires_nonletter, mPasswordMinNonLetter),
+ mPasswordMinNonLetter);
}
} else {
final boolean alphabetic = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC