diff options
author | Jim Miller <jaggies@google.com> | 2014-10-17 23:48:20 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-10-17 23:48:21 +0000 |
commit | c6c843fbe8fb8d9bdd012a472e22970ee89b9d24 (patch) | |
tree | 51da3618cc17c922060eb17a063cb6e40dcfb356 /core/java | |
parent | e4e3fcec415cdc9739f32ce1eaaec67666e5454d (diff) | |
parent | dd5de719c5a0d39030f94d931c0ab1bed1f147f8 (diff) | |
download | frameworks_base-c6c843fbe8fb8d9bdd012a472e22970ee89b9d24.zip frameworks_base-c6c843fbe8fb8d9bdd012a472e22970ee89b9d24.tar.gz frameworks_base-c6c843fbe8fb8d9bdd012a472e22970ee89b9d24.tar.bz2 |
Merge "Add utility methods to LockPatternUtils for encryption" into lmp-dev
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/com/android/internal/widget/LockPatternUtils.java | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 412b4d2..d6885da 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -560,9 +560,7 @@ public class LockPatternUtils { // Update the device encryption password. if (userId == UserHandle.USER_OWNER && LockPatternUtils.isDeviceEncryptionEnabled()) { - final ContentResolver cr = mContext.getContentResolver(); - final boolean required = Settings.Global.getInt(cr, - Settings.Global.REQUIRE_PASSWORD_TO_DECRYPT, 1) == 1 ? true : false; + final boolean required = isCredentialRequiredToDecrypt(true); if (!required) { clearEncryptionPassword(); } else { @@ -793,10 +791,7 @@ public class LockPatternUtils { // Update the device encryption password. if (userHandle == UserHandle.USER_OWNER && LockPatternUtils.isDeviceEncryptionEnabled()) { - final ContentResolver cr = mContext.getContentResolver(); - final boolean required = Settings.Global.getInt(cr, - Settings.Global.REQUIRE_PASSWORD_TO_DECRYPT, 1) == 1 ? true : false; - if (!required) { + if (!isCredentialRequiredToDecrypt(true)) { clearEncryptionPassword(); } else { boolean numeric = computedQuality @@ -1658,4 +1653,19 @@ public class LockPatternUtils { private void onAfterChangingPassword() { getTrustManager().reportEnabledTrustAgentsChanged(getCurrentOrCallingUserId()); } + + public boolean isCredentialRequiredToDecrypt(boolean defaultValue) { + final int value = Settings.Global.getInt(mContentResolver, + Settings.Global.REQUIRE_PASSWORD_TO_DECRYPT, -1); + return value == -1 ? defaultValue : (value != 0); + } + + public void setCredentialRequiredToDecrypt(boolean required) { + if (getCurrentUser() != UserHandle.USER_OWNER) { + Log.w(TAG, "Only device owner may call setCredentialRequiredForDecrypt()"); + return; + } + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.REQUIRE_PASSWORD_TO_DECRYPT, required ? 1 : 0); + } } |