Merge "DO NOT MERGE - Cherry picking from master to MR1" into ics-mr1
This commit is contained in:
committed by
Android (Google) Code Review
commit
2931d8ace9
@@ -428,14 +428,6 @@ public class LockPatternUtils {
|
|||||||
return !isSecure() && getLong(DISABLE_LOCKSCREEN_KEY, 0) != 0;
|
return !isSecure() && getLong(DISABLE_LOCKSCREEN_KEY, 0) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Save a lock pattern.
|
|
||||||
* @param pattern The new pattern to save.
|
|
||||||
*/
|
|
||||||
public void saveLockPattern(List<LockPatternView.Cell> pattern) {
|
|
||||||
this.saveLockPattern(pattern, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calls back SetupFaceLock to delete the temporary gallery file
|
* Calls back SetupFaceLock to delete the temporary gallery file
|
||||||
*/
|
*/
|
||||||
@@ -458,6 +450,14 @@ public class LockPatternUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save a lock pattern.
|
||||||
|
* @param pattern The new pattern to save.
|
||||||
|
*/
|
||||||
|
public void saveLockPattern(List<LockPatternView.Cell> pattern) {
|
||||||
|
this.saveLockPattern(pattern, false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save a lock pattern.
|
* Save a lock pattern.
|
||||||
* @param pattern The new pattern to save.
|
* @param pattern The new pattern to save.
|
||||||
@@ -484,14 +484,16 @@ public class LockPatternUtils {
|
|||||||
if (!isFallback) {
|
if (!isFallback) {
|
||||||
deleteGallery();
|
deleteGallery();
|
||||||
setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
|
setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
|
||||||
|
dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING,
|
||||||
|
pattern.size(), 0, 0, 0, 0, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK);
|
setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK);
|
||||||
setLong(PASSWORD_TYPE_ALTERNATE_KEY,
|
setLong(PASSWORD_TYPE_ALTERNATE_KEY,
|
||||||
DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
|
DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
|
||||||
finishBiometricWeak();
|
finishBiometricWeak();
|
||||||
|
dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK,
|
||||||
|
0, 0, 0, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING, pattern
|
|
||||||
.size(), 0, 0, 0, 0, 0, 0);
|
|
||||||
} else {
|
} else {
|
||||||
if (keyStore.isEmpty()) {
|
if (keyStore.isEmpty()) {
|
||||||
keyStore.reset();
|
keyStore.reset();
|
||||||
@@ -602,40 +604,45 @@ public class LockPatternUtils {
|
|||||||
if (!isFallback) {
|
if (!isFallback) {
|
||||||
deleteGallery();
|
deleteGallery();
|
||||||
setLong(PASSWORD_TYPE_KEY, Math.max(quality, computedQuality));
|
setLong(PASSWORD_TYPE_KEY, Math.max(quality, computedQuality));
|
||||||
|
if (computedQuality != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
|
||||||
|
int letters = 0;
|
||||||
|
int uppercase = 0;
|
||||||
|
int lowercase = 0;
|
||||||
|
int numbers = 0;
|
||||||
|
int symbols = 0;
|
||||||
|
int nonletter = 0;
|
||||||
|
for (int i = 0; i < password.length(); i++) {
|
||||||
|
char c = password.charAt(i);
|
||||||
|
if (c >= 'A' && c <= 'Z') {
|
||||||
|
letters++;
|
||||||
|
uppercase++;
|
||||||
|
} else if (c >= 'a' && c <= 'z') {
|
||||||
|
letters++;
|
||||||
|
lowercase++;
|
||||||
|
} else if (c >= '0' && c <= '9') {
|
||||||
|
numbers++;
|
||||||
|
nonletter++;
|
||||||
|
} else {
|
||||||
|
symbols++;
|
||||||
|
nonletter++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dpm.setActivePasswordState(Math.max(quality, computedQuality),
|
||||||
|
password.length(), letters, uppercase, lowercase,
|
||||||
|
numbers, symbols, nonletter);
|
||||||
|
} else {
|
||||||
|
// The password is not anything.
|
||||||
|
dpm.setActivePasswordState(
|
||||||
|
DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED,
|
||||||
|
0, 0, 0, 0, 0, 0, 0);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// Case where it's a fallback for biometric weak
|
||||||
setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK);
|
setLong(PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK);
|
||||||
setLong(PASSWORD_TYPE_ALTERNATE_KEY, Math.max(quality, computedQuality));
|
setLong(PASSWORD_TYPE_ALTERNATE_KEY, Math.max(quality, computedQuality));
|
||||||
finishBiometricWeak();
|
finishBiometricWeak();
|
||||||
}
|
dpm.setActivePasswordState(DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK,
|
||||||
if (computedQuality != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
|
0, 0, 0, 0, 0, 0, 0);
|
||||||
int letters = 0;
|
|
||||||
int uppercase = 0;
|
|
||||||
int lowercase = 0;
|
|
||||||
int numbers = 0;
|
|
||||||
int symbols = 0;
|
|
||||||
int nonletter = 0;
|
|
||||||
for (int i = 0; i < password.length(); i++) {
|
|
||||||
char c = password.charAt(i);
|
|
||||||
if (c >= 'A' && c <= 'Z') {
|
|
||||||
letters++;
|
|
||||||
uppercase++;
|
|
||||||
} else if (c >= 'a' && c <= 'z') {
|
|
||||||
letters++;
|
|
||||||
lowercase++;
|
|
||||||
} else if (c >= '0' && c <= '9') {
|
|
||||||
numbers++;
|
|
||||||
nonletter++;
|
|
||||||
} else {
|
|
||||||
symbols++;
|
|
||||||
nonletter++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
dpm.setActivePasswordState(Math.max(quality, computedQuality), password
|
|
||||||
.length(), letters, uppercase, lowercase, numbers, symbols, nonletter);
|
|
||||||
} else {
|
|
||||||
// The password is not anything.
|
|
||||||
dpm.setActivePasswordState(
|
|
||||||
DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED, 0, 0, 0, 0, 0, 0, 0);
|
|
||||||
}
|
}
|
||||||
// Add the password to the password history. We assume all
|
// Add the password to the password history. We assume all
|
||||||
// password
|
// password
|
||||||
|
|||||||
@@ -831,6 +831,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
static void validateQualityConstant(int quality) {
|
static void validateQualityConstant(int quality) {
|
||||||
switch (quality) {
|
switch (quality) {
|
||||||
case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
|
case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
|
||||||
|
case DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK:
|
||||||
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
|
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
|
||||||
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
|
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
|
||||||
case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
|
case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
|
||||||
|
|||||||
Reference in New Issue
Block a user