summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Miller <jaggies@google.com>2014-10-17 23:48:20 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-10-17 23:48:21 +0000
commitc6c843fbe8fb8d9bdd012a472e22970ee89b9d24 (patch)
tree51da3618cc17c922060eb17a063cb6e40dcfb356
parente4e3fcec415cdc9739f32ce1eaaec67666e5454d (diff)
parentdd5de719c5a0d39030f94d931c0ab1bed1f147f8 (diff)
downloadbase-c6c843fbe8fb8d9bdd012a472e22970ee89b9d24.tar.gz
Merge "Add utility methods to LockPatternUtils for encryption" into lmp-dev
-rw-r--r--core/java/com/android/internal/widget/LockPatternUtils.java24
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 412b4d2dc95c..d6885da2b169 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);
+ }
}