diff options
author | 2018-03-23 03:31:48 +0000 | |
---|---|---|
committer | 2018-03-23 03:31:48 +0000 | |
commit | a9f6576c8bba595209c743f2b7be8c22e7782b5d (patch) | |
tree | f89379e06b664bab1a7c7591ff4bd397ea05d112 | |
parent | 307af3b7d234d8520266078e3e271cf7d79f3723 (diff) | |
parent | 0f4545ac6489e726dc6625853fcbd4732230b0ff (diff) |
Merge "Allow developer options in retail mode" into pi-dev
am: 0f4545ac64
Change-Id: Idf9fb0805d81e6078ed8bdb029c6f885b0813004
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(); + } } |