From 1f61ff4cf9e8e7b9bd36c849a65839373b394070 Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Mon, 5 Mar 2018 16:35:48 -0800 Subject: [PATCH] Introduce boolean flags to show/hide Encryption status. This adds one new flag: config_show_encryption_and_credentials_encryption_status Which when set to false, will hide Encryption status from Encryption & credentials. This is when the storage is not being handed by Android, and so this preference would not be necessarily correct. Bug: 74127210 Test: Updated robotests Change-Id: I13665fa369086ef29a4de5f99a78bfbaf96f2f6b (cherry picked from commit 2d5df469d3a50a1aea6245785e54d0d4ad301d39) --- res/values/bools.xml | 3 +++ .../EncryptionStatusPreferenceController.java | 6 ++++++ tests/robotests/res/values-mcc999/config.xml | 1 + ...ncryptionStatusPreferenceControllerTest.java | 17 +++++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/res/values/bools.xml b/res/values/bools.xml index 4665f2eaed9..79285106465 100644 --- a/res/values/bools.xml +++ b/res/values/bools.xml @@ -96,6 +96,9 @@ true + + true + true diff --git a/src/com/android/settings/security/EncryptionStatusPreferenceController.java b/src/com/android/settings/security/EncryptionStatusPreferenceController.java index 234124827b5..81255991792 100644 --- a/src/com/android/settings/security/EncryptionStatusPreferenceController.java +++ b/src/com/android/settings/security/EncryptionStatusPreferenceController.java @@ -41,6 +41,12 @@ public class EncryptionStatusPreferenceController extends BasePreferenceControll @Override public int getAvailabilityStatus() { + if (TextUtils.equals(getPreferenceKey(), PREF_KEY_ENCRYPTION_DETAIL_PAGE) && + !mContext.getResources().getBoolean( + R.bool.config_show_encryption_and_credentials_encryption_status)) { + return DISABLED_UNSUPPORTED; + } + return mUserManager.isAdminUser() ? AVAILABLE : DISABLED_FOR_USER; } diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml index 788c593d2a2..d4e030c2ae6 100644 --- a/tests/robotests/res/values-mcc999/config.xml +++ b/tests/robotests/res/values-mcc999/config.xml @@ -34,6 +34,7 @@ false false false + false false false false diff --git a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java index ee6d33aace0..2e6b703d2c8 100644 --- a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java @@ -67,6 +67,23 @@ public class EncryptionStatusPreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } + @Test + @Config(qualifiers = "mcc999") + public void isAvailable_notVisible_false() { + assertThat(mController.isAvailable()).isFalse(); + } + + @Test + @Config(qualifiers = "mcc999") + public void isAvailable_notVisible_butNotDetailPage_true() { + mController = new EncryptionStatusPreferenceController(mContext, + PREF_KEY_ENCRYPTION_SECURITY_PAGE); + + UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); + Shadows.shadowOf(userManager).setIsAdminUser(true); + assertThat(mController.isAvailable()).isTrue(); + } + @Test public void updateSummary_encrypted_shouldSayEncrypted() { ShadowLockPatternUtils.setDeviceEncryptionEnabled(true);