Merge "Allow developer options in retail mode" into pi-dev

am: 0f4545ac64

Change-Id: Idf9fb0805d81e6078ed8bdb029c6f885b0813004
This commit is contained in:
Christine Franks
2018-03-23 03:31:48 +00:00
committed by android-build-merger
3 changed files with 16 additions and 5 deletions

View File

@@ -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

View File

@@ -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;
}
}

View File

@@ -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();
}
}