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);