diff options
author | 2018-03-23 01:11:22 +0000 | |
---|---|---|
committer | 2018-03-23 01:11:22 +0000 | |
commit | 0f4545ac6489e726dc6625853fcbd4732230b0ff (patch) | |
tree | 3b2f6f739d247d4ab9eee825900844903c5ab833 | |
parent | 0cdac33f8f0d8d7d53cb4d286a99b4ed8008e3e9 (diff) | |
parent | 77ff57992b40f5bf0483b7e81ade562c89b0c091 (diff) |
Merge "Allow developer options in retail mode" into pi-dev
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(); + } } |