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

This commit is contained in:
Christine Franks
2018-03-23 01:11:22 +00:00
committed by Android (Google) Code Review
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();
}
}