diff options
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(); + } } |