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

Commit 77ff5799 authored by Christine Franks's avatar Christine Franks
Browse files

Allow developer options in retail mode

Bug: 70985064
Test: make -j100 && make RunSettingsLibRoboTests -j100
Change-Id: I900ea38c8ce0ceb041092a426e58db0cf0ed59f3
parent 6b0a9bc0
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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
+2 −3
Original line number Diff line number Diff line
@@ -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;
    }
}
+12 −1
Original line number Diff line number Diff line
@@ -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();
    }
}