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

Commit 3900e41f authored by Yuri Lin's avatar Yuri Lin Committed by Automerger Merge Worker
Browse files

Merge "Revert "Check rule package name in ZenModeHelper.addAutomaticRule""...

Merge "Revert "Check rule package name in ZenModeHelper.addAutomaticRule"" into tm-qpr-dev am: 48632130 am: bbe209f5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20404110



Change-Id: Ia683d0587bcaeec1c5cda3ef4972212505d7aef0
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 389399dd bbe209f5
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -326,7 +326,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());
@@ -582,6 +582,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
@@ -1671,36 +1671,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",