diff options
author | 2018-03-23 05:13:20 +0000 | |
---|---|---|
committer | 2018-03-23 05:13:20 +0000 | |
commit | c3a7e3bd41d0a9555eecdb9e50f5e72d72255414 (patch) | |
tree | dde8a2728d06b222791c9768e732682c457f1aae | |
parent | 9518f6f957db971cd6f17df5fef3a281f8b6d64a (diff) | |
parent | a9f6576c8bba595209c743f2b7be8c22e7782b5d (diff) |
Merge "Allow developer options in retail mode" into pi-dev am: 0f4545ac64
am: a9f6576c8b
Change-Id: I1d214eab76c8b19b2955b7844be31735d79ba384
3 files changed, 16 insertions, 5 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/development/AbstractEnableAdbPreferenceController.java b/packages/SettingsLib/src/com/android/settingslib/development/AbstractEnableAdbPreferenceController.java index 3c02f6a234f4..2d3dfe4511e0 100644 --- a/packages/SettingsLib/src/com/android/settingslib/development/AbstractEnableAdbPreferenceController.java +++ b/packages/SettingsLib/src/com/android/settingslib/development/AbstractEnableAdbPreferenceController.java @@ -59,7 +59,8 @@ public abstract class AbstractEnableAdbPreferenceController extends @Override public boolean isAvailable() { - return mContext.getSystemService(UserManager.class).isAdminUser(); + final UserManager um = mContext.getSystemService(UserManager.class); + return um != null && (um.isAdminUser() || um.isDemoUser()); } @Override diff --git a/packages/SettingsLib/src/com/android/settingslib/development/DevelopmentSettingsEnabler.java b/packages/SettingsLib/src/com/android/settingslib/development/DevelopmentSettingsEnabler.java index 85bf4e83bd55..d21da4e1cd0e 100644 --- a/packages/SettingsLib/src/com/android/settingslib/development/DevelopmentSettingsEnabler.java +++ b/packages/SettingsLib/src/com/android/settingslib/development/DevelopmentSettingsEnabler.java @@ -45,8 +45,7 @@ public class DevelopmentSettingsEnabler { Build.TYPE.equals("eng") ? 1 : 0) != 0; final boolean hasRestriction = um.hasUserRestriction( UserManager.DISALLOW_DEBUGGING_FEATURES); - final boolean isAdmin = um.isAdminUser(); - - return isAdmin && !hasRestriction && settingEnabled; + final boolean isAdminOrDemo = um.isAdminUser() || um.isDemoUser(); + return isAdminOrDemo && !hasRestriction && settingEnabled; } } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DevelopmentSettingsEnablerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DevelopmentSettingsEnablerTest.java index a15f5fce558e..ccaf3fcbef17 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DevelopmentSettingsEnablerTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/DevelopmentSettingsEnablerTest.java @@ -73,11 +73,22 @@ public class DevelopmentSettingsEnablerTest { } @Test - public void isEnabled_settingsOn_noRestriction_notAdmin_shouldReturnFalse() { + public void isEnabled_settingsOn_noRestriction_notAdmin_notDemo_shouldReturnFalse() { Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1); ShadowUserManager.getShadow().setIsAdminUser(false); + ShadowUserManager.getShadow().setIsDemoUser(false); assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isFalse(); } + + @Test + public void isEnabled_settingsOn_noRestriction_notAdmin_isDemo_shouldReturnTrue() { + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1); + ShadowUserManager.getShadow().setIsAdminUser(false); + ShadowUserManager.getShadow().setIsDemoUser(true); + + assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isTrue(); + } } |