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

Commit 36c2974d authored by Yuri Lin's avatar Yuri Lin Committed by Android (Google) Code Review
Browse files

[DO NOT MERGE] Revert "Check rule package name in ZenModeHelper.addAutomaticRule"

This reverts commit 6b38e116.

Reason for revert: broke DND schedules in multi-user mode b/257477671

Change-Id: I09d0234196c7626e0c12ecfc09e3eb990b1403f9
parent 6b38e116
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -310,7 +310,7 @@ public class ZenModeHelper {

    public String addAutomaticZenRule(String pkg, AutomaticZenRule automaticZenRule,
            String reason) {
        if (!ZenModeConfig.SYSTEM_AUTHORITY.equals(pkg)) {
        if (!isSystemRule(automaticZenRule)) {
            PackageItemInfo component = getServiceInfo(automaticZenRule.getOwner());
            if (component == null) {
                component = getActivityInfo(automaticZenRule.getConfigurationActivity());
@@ -566,6 +566,11 @@ public class ZenModeHelper {
        }
    }

    private boolean isSystemRule(AutomaticZenRule rule) {
        return rule.getOwner() != null
                && ZenModeConfig.SYSTEM_AUTHORITY.equals(rule.getOwner().getPackageName());
    }

    private ServiceInfo getServiceInfo(ComponentName owner) {
        Intent queryIntent = new Intent();
        queryIntent.setComponent(owner);
+0 −30
Original line number Diff line number Diff line
@@ -1667,36 +1667,6 @@ public class ZenModeHelperTest extends UiServiceTestCase {
        }
    }

    @Test
    public void testAddAutomaticZenRule_claimedSystemOwner() {
        // Make sure anything that claims to have a "system" owner but not actually part of the
        // system package still gets limited on number of rules
        for (int i = 0; i < RULE_LIMIT_PER_PACKAGE; i++) {
            ScheduleInfo si = new ScheduleInfo();
            si.startHour = i;
            AutomaticZenRule zenRule = new AutomaticZenRule("name" + i,
                    new ComponentName("android", "ScheduleConditionProvider" + i),
                    null, // configuration activity
                    ZenModeConfig.toScheduleConditionId(si),
                    new ZenPolicy.Builder().build(),
                    NotificationManager.INTERRUPTION_FILTER_PRIORITY, true);
            String id = mZenModeHelperSpy.addAutomaticZenRule("pkgname", zenRule, "test");
            assertNotNull(id);
        }
        try {
            AutomaticZenRule zenRule = new AutomaticZenRule("name",
                    new ComponentName("android", "ScheduleConditionProviderFinal"),
                    null, // configuration activity
                    ZenModeConfig.toScheduleConditionId(new ScheduleInfo()),
                    new ZenPolicy.Builder().build(),
                    NotificationManager.INTERRUPTION_FILTER_PRIORITY, true);
            String id = mZenModeHelperSpy.addAutomaticZenRule("pkgname", zenRule, "test");
            fail("allowed too many rules to be created");
        } catch (IllegalArgumentException e) {
            // yay
        }
    }

    @Test
    public void testAddAutomaticZenRule_CA() {
        AutomaticZenRule zenRule = new AutomaticZenRule("name",