Merge "DPM: Fix regression from I54376f60ac53451ace22965d331b47cd8c2e614e" into pi-dev

This commit is contained in:
TreeHugger Robot
2019-01-08 17:32:41 +00:00
committed by Android (Google) Code Review

View File

@@ -4789,26 +4789,22 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
private boolean resetPasswordInternal(String password, long tokenHandle, byte[] token, private boolean resetPasswordInternal(String password, long tokenHandle, byte[] token,
int flags, int callingUid, int userHandle) { int flags, int callingUid, int userHandle) {
int quality; int quality;
final int realQuality;
synchronized (getLockObject()) { synchronized (getLockObject()) {
quality = getPasswordQuality(null, userHandle, /* parent */ false); quality = getPasswordQuality(null, userHandle, /* parent */ false);
if (quality == DevicePolicyManager.PASSWORD_QUALITY_MANAGED) { if (quality == DevicePolicyManager.PASSWORD_QUALITY_MANAGED) {
quality = PASSWORD_QUALITY_UNSPECIFIED; quality = PASSWORD_QUALITY_UNSPECIFIED;
} }
final PasswordMetrics metrics = PasswordMetrics.computeForPassword(password); final PasswordMetrics metrics = PasswordMetrics.computeForPassword(password);
realQuality = metrics.quality; final int realQuality = metrics.quality;
if (quality != PASSWORD_QUALITY_UNSPECIFIED) { if (realQuality < quality
&& quality != DevicePolicyManager.PASSWORD_QUALITY_COMPLEX) {
if (realQuality < quality Slog.w(LOG_TAG, "resetPassword: password quality 0x"
&& quality != DevicePolicyManager.PASSWORD_QUALITY_COMPLEX) { + Integer.toHexString(realQuality)
Slog.w(LOG_TAG, "resetPassword: password quality 0x" + " does not meet required quality 0x"
+ Integer.toHexString(realQuality) + Integer.toHexString(quality));
+ " does not meet required quality 0x" return false;
+ Integer.toHexString(quality));
return false;
}
quality = Math.max(realQuality, quality);
} }
quality = Math.max(realQuality, quality);
int length = getPasswordMinimumLength(null, userHandle, /* parent */ false); int length = getPasswordMinimumLength(null, userHandle, /* parent */ false);
if (password.length() < length) { if (password.length() < length) {
Slog.w(LOG_TAG, "resetPassword: password length " + password.length() Slog.w(LOG_TAG, "resetPassword: password length " + password.length()
@@ -4885,7 +4881,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
try { try {
if (token == null) { if (token == null) {
if (!TextUtils.isEmpty(password)) { if (!TextUtils.isEmpty(password)) {
mLockPatternUtils.saveLockPassword(password, null, realQuality, userHandle); mLockPatternUtils.saveLockPassword(password, null, quality, userHandle);
} else { } else {
mLockPatternUtils.clearLock(null, userHandle); mLockPatternUtils.clearLock(null, userHandle);
} }
@@ -4894,7 +4890,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
result = mLockPatternUtils.setLockCredentialWithToken(password, result = mLockPatternUtils.setLockCredentialWithToken(password,
TextUtils.isEmpty(password) ? LockPatternUtils.CREDENTIAL_TYPE_NONE TextUtils.isEmpty(password) ? LockPatternUtils.CREDENTIAL_TYPE_NONE
: LockPatternUtils.CREDENTIAL_TYPE_PASSWORD, : LockPatternUtils.CREDENTIAL_TYPE_PASSWORD,
realQuality, tokenHandle, token, userHandle); quality, tokenHandle, token, userHandle);
} }
boolean requireEntry = (flags & DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY) != 0; boolean requireEntry = (flags & DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY) != 0;
if (requireEntry) { if (requireEntry) {