Allow access to deprecated LOCK_PATTERN_ENABLED flag.
It is possible that older platforms may have not cleared the lock pattern, but instead only checked this flag to determine the lock pattern enabled state. In such cases, upgrading to a platform with that only checks the lock pattern can lead to the lock screen being re-enabled by accident. These new methods allow this condition to be identified and resolved. Bug: 26029690 Change-Id: I8f7ebc0e1915049afe49c219c87010aa38a16244
This commit is contained in:
@@ -63,6 +63,11 @@ public class LockPatternUtils {
|
||||
private static final String TAG = "LockPatternUtils";
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
/**
|
||||
* The key to identify when the lock pattern enabled flag is being acccessed for legacy reasons.
|
||||
*/
|
||||
public static final String LEGACY_LOCK_PATTERN_ENABLED = "legacy_lock_pattern_enabled";
|
||||
|
||||
/**
|
||||
* The number of incorrect attempts before which we fall back on an alternative
|
||||
* method of verifying the user, and resetting their lock pattern.
|
||||
@@ -985,6 +990,19 @@ public class LockPatternUtils {
|
||||
return isLockPatternEnabled(getKeyguardStoredPasswordQuality(userId), userId);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean isLegacyLockPatternEnabled(int userId) {
|
||||
// Note: this value should default to {@code true} to avoid any reset that might result.
|
||||
// We must use a special key to read this value, since it will by default return the value
|
||||
// based on the new logic.
|
||||
return getBoolean(LEGACY_LOCK_PATTERN_ENABLED, true, userId);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void setLegacyLockPatternEnabled(int userId) {
|
||||
setBoolean(Settings.Secure.LOCK_PATTERN_ENABLED, true, userId);
|
||||
}
|
||||
|
||||
private boolean isLockPatternEnabled(int mode, int userId) {
|
||||
return mode == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
|
||||
&& savedPatternExists(userId);
|
||||
|
||||
@@ -350,6 +350,10 @@ public class LockSettingsService extends ILockSettings.Stub {
|
||||
}
|
||||
}
|
||||
|
||||
if (LockPatternUtils.LEGACY_LOCK_PATTERN_ENABLED.equals(key)) {
|
||||
key = Settings.Secure.LOCK_PATTERN_ENABLED;
|
||||
}
|
||||
|
||||
return mStorage.readKeyValue(key, defaultValue, userId);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user