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

Commit 2e7d3ae5 authored by Yuri Lin's avatar Yuri Lin Committed by Automerger Merge Worker
Browse files

Merge "Revert "Fix system zen rules by using owner package name if caller is...

Merge "Revert "Fix system zen rules by using owner package name if caller is system"" into tm-qpr-dev am: dcb12923 am: 081329e1

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



Change-Id: Ifc95e45365948151cc8fdf094059e1e601dc8a10
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 3900e41f 081329e1
Loading
Loading
Loading
Loading
+1 −10
Original line number Original line Diff line number Diff line
@@ -4967,16 +4967,7 @@ public class NotificationManagerService extends SystemService {
            }
            }
            enforcePolicyAccess(Binder.getCallingUid(), "addAutomaticZenRule");
            enforcePolicyAccess(Binder.getCallingUid(), "addAutomaticZenRule");
            // If the caller is system, take the package name from the rule's owner rather than
            return mZenModeHelper.addAutomaticZenRule(pkg, automaticZenRule,
            // from the caller's package.
            String rulePkg = pkg;
            if (isCallingUidSystem()) {
                if (automaticZenRule.getOwner() != null) {
                    rulePkg = automaticZenRule.getOwner().getPackageName();
                }
            }
            return mZenModeHelper.addAutomaticZenRule(rulePkg, automaticZenRule,
                    "addAutomaticZenRule");
                    "addAutomaticZenRule");
        }
        }
+0 −37
Original line number Original line Diff line number Diff line
@@ -7604,43 +7604,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
        mBinderService.addAutomaticZenRule(rule, mContext.getPackageName());
        mBinderService.addAutomaticZenRule(rule, mContext.getPackageName());
    }
    }


    @Test
    public void testAddAutomaticZenRule_systemCallTakesPackageFromOwner() throws Exception {
        mService.isSystemUid = true;
        ZenModeHelper mockZenModeHelper = mock(ZenModeHelper.class);
        when(mConditionProviders.isPackageOrComponentAllowed(anyString(), anyInt()))
                .thenReturn(true);
        mService.setZenHelper(mockZenModeHelper);
        ComponentName owner = new ComponentName("android", "ProviderName");
        ZenPolicy zenPolicy = new ZenPolicy.Builder().allowAlarms(true).build();
        boolean isEnabled = true;
        AutomaticZenRule rule = new AutomaticZenRule("test", owner, owner, mock(Uri.class),
                zenPolicy, NotificationManager.INTERRUPTION_FILTER_PRIORITY, isEnabled);
        mBinderService.addAutomaticZenRule(rule, "com.android.settings");

        // verify that zen mode helper gets passed in a package name of "android"
        verify(mockZenModeHelper).addAutomaticZenRule(eq("android"), eq(rule), anyString());
    }

    @Test
    public void testAddAutomaticZenRule_nonSystemCallTakesPackageFromArg() throws Exception {
        mService.isSystemUid = false;
        ZenModeHelper mockZenModeHelper = mock(ZenModeHelper.class);
        when(mConditionProviders.isPackageOrComponentAllowed(anyString(), anyInt()))
                .thenReturn(true);
        mService.setZenHelper(mockZenModeHelper);
        ComponentName owner = new ComponentName("android", "ProviderName");
        ZenPolicy zenPolicy = new ZenPolicy.Builder().allowAlarms(true).build();
        boolean isEnabled = true;
        AutomaticZenRule rule = new AutomaticZenRule("test", owner, owner, mock(Uri.class),
                zenPolicy, NotificationManager.INTERRUPTION_FILTER_PRIORITY, isEnabled);
        mBinderService.addAutomaticZenRule(rule, "another.package");

        // verify that zen mode helper gets passed in the package name from the arg, not the owner
        verify(mockZenModeHelper).addAutomaticZenRule(
                eq("another.package"), eq(rule), anyString());
    }

    @Test
    @Test
    public void testAreNotificationsEnabledForPackage() throws Exception {
    public void testAreNotificationsEnabledForPackage() throws Exception {
        mBinderService.areNotificationsEnabledForPackage(mContext.getPackageName(),
        mBinderService.areNotificationsEnabledForPackage(mContext.getPackageName(),