Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f4545ac authored by Christine Franks's avatar Christine Franks Committed by Android (Google) Code Review
Browse files

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

parents 0cdac33f 77ff5799
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -59,7 +59,8 @@ public abstract class AbstractEnableAdbPreferenceController extends


    @Override
    @Override
    public boolean isAvailable() {
    public boolean isAvailable() {
        return mContext.getSystemService(UserManager.class).isAdminUser();
        final UserManager um = mContext.getSystemService(UserManager.class);
        return um != null && (um.isAdminUser() || um.isDemoUser());
    }
    }


    @Override
    @Override
+2 −3
Original line number Original line Diff line number Diff line
@@ -45,8 +45,7 @@ public class DevelopmentSettingsEnabler {
                Build.TYPE.equals("eng") ? 1 : 0) != 0;
                Build.TYPE.equals("eng") ? 1 : 0) != 0;
        final boolean hasRestriction = um.hasUserRestriction(
        final boolean hasRestriction = um.hasUserRestriction(
                UserManager.DISALLOW_DEBUGGING_FEATURES);
                UserManager.DISALLOW_DEBUGGING_FEATURES);
        final boolean isAdmin = um.isAdminUser();
        final boolean isAdminOrDemo = um.isAdminUser() || um.isDemoUser();

        return isAdminOrDemo && !hasRestriction && settingEnabled;
        return isAdmin && !hasRestriction && settingEnabled;
    }
    }
}
}
+12 −1
Original line number Original line Diff line number Diff line
@@ -73,11 +73,22 @@ public class DevelopmentSettingsEnablerTest {
    }
    }


    @Test
    @Test
    public void isEnabled_settingsOn_noRestriction_notAdmin_shouldReturnFalse() {
    public void isEnabled_settingsOn_noRestriction_notAdmin_notDemo_shouldReturnFalse() {
        Settings.Global.putInt(mContext.getContentResolver(),
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
                Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
        ShadowUserManager.getShadow().setIsAdminUser(false);
        ShadowUserManager.getShadow().setIsAdminUser(false);
        ShadowUserManager.getShadow().setIsDemoUser(false);


        assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isFalse();
        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();
    }
}
}