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

Commit 49db8e03 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add way to check if user has locked the bubble allowed field"

parents 71235246 9db685ad
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ interface INotificationManager
    void setBubblesAllowed(String pkg, int uid, boolean allowed);
    boolean areBubblesAllowed(String pkg);
    boolean areBubblesAllowedForPackage(String pkg, int uid);
    boolean hasUserApprovedBubblesForPackage(String pkg, int uid);

    void createNotificationChannelGroups(String pkg, in ParceledListSlice channelGroupList);
    void createNotificationChannels(String pkg, in ParceledListSlice channelsList);
+9 −3
Original line number Diff line number Diff line
@@ -2340,17 +2340,23 @@ public class NotificationManagerService extends SystemService {
        public boolean areBubblesAllowedForPackage(String pkg, int uid) {
            enforceSystemOrSystemUIOrSamePackage(pkg,
                    "Caller not system or systemui or same package");
            return mPreferencesHelper.areBubblessAllowed(pkg, uid);
            return mPreferencesHelper.areBubblesAllowed(pkg, uid);
        }

        @Override
        public void setBubblesAllowed(String pkg, int uid, boolean allowed) {
            checkCallerIsSystem();

            enforceSystemOrSystemUI("Caller not system or systemui");
            mPreferencesHelper.setBubblesAllowed(pkg, uid, allowed);
            handleSavePolicyFile();
        }

        @Override
        public boolean hasUserApprovedBubblesForPackage(String pkg, int uid) {
            enforceSystemOrSystemUI("Caller not system or systemui");
            int lockedFields = mPreferencesHelper.getAppLockedFields(pkg, uid);
            return (lockedFields & PreferencesHelper.LockableAppFields.USER_LOCKED_BUBBLE) != 0;
        }

        @Override
        public int getPackageImportance(String pkg) {
            checkCallerIsSystemOrSameApp(pkg);
+1 −2
Original line number Diff line number Diff line
@@ -473,7 +473,7 @@ public class PreferencesHelper implements RankingConfig {
     * @param uid the uid to check if bubbles are allowed for.
     * @return whether bubbles are allowed.
     */
    public boolean areBubblessAllowed(String pkg, int uid) {
    public boolean areBubblesAllowed(String pkg, int uid) {
        return getOrCreatePackagePreferences(pkg, uid).allowBubble;
    }

@@ -489,7 +489,6 @@ public class PreferencesHelper implements RankingConfig {
        return getOrCreatePackagePreferences(packageName, uid).importance;
    }


    /**
     * Returns whether the importance of the corresponding notification is user-locked and shouldn't
     * be adjusted by an assistant (via means of a blocking helper, for example). For the channel
+16 −0
Original line number Diff line number Diff line
@@ -3594,6 +3594,22 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
        assertFalse(mBinderService.areBubblesAllowedForPackage(PKG, mUid));
    }

    @Test
    public void testUserApprovedBubblesForPackage() throws Exception {
        assertFalse(mBinderService.hasUserApprovedBubblesForPackage(PKG, mUid));
        mBinderService.setBubblesAllowed(PKG, mUid, true);
        assertTrue(mBinderService.hasUserApprovedBubblesForPackage(PKG, mUid));
        assertTrue(mBinderService.areBubblesAllowedForPackage(PKG, mUid));
    }

    @Test
    public void testUserRejectsBubblesForPackage() throws Exception {
        assertFalse(mBinderService.hasUserApprovedBubblesForPackage(PKG, mUid));
        mBinderService.setBubblesAllowed(PKG, mUid, false);
        assertTrue(mBinderService.hasUserApprovedBubblesForPackage(PKG, mUid));
        assertFalse(mBinderService.areBubblesAllowedForPackage(PKG, mUid));
    }

    @Test
    public void testIsCallerInstantApp_primaryUser() throws Exception {
        ApplicationInfo info = new ApplicationInfo();
+4 −4
Original line number Diff line number Diff line
@@ -2162,20 +2162,20 @@ public class PreferencesHelperTest extends UiServiceTestCase {

    @Test
    public void testAllowBubbles_defaults() throws Exception {
        assertTrue(mHelper.areBubblessAllowed(PKG_O, UID_O));
        assertTrue(mHelper.areBubblesAllowed(PKG_O, UID_O));

        ByteArrayOutputStream baos = writeXmlAndPurge(PKG_O, UID_O, false);
        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
        loadStreamXml(baos, false);

        assertTrue(mHelper.areBubblessAllowed(PKG_O, UID_O));
        assertTrue(mHelper.areBubblesAllowed(PKG_O, UID_O));
        assertEquals(0, mHelper.getAppLockedFields(PKG_O, UID_O));
    }

    @Test
    public void testAllowBubbles_xml() throws Exception {
        mHelper.setBubblesAllowed(PKG_O, UID_O, false);
        assertFalse(mHelper.areBubblessAllowed(PKG_O, UID_O));
        assertFalse(mHelper.areBubblesAllowed(PKG_O, UID_O));
        assertEquals(PreferencesHelper.LockableAppFields.USER_LOCKED_BUBBLE,
                mHelper.getAppLockedFields(PKG_O, UID_O));

@@ -2183,7 +2183,7 @@ public class PreferencesHelperTest extends UiServiceTestCase {
        mHelper = new PreferencesHelper(getContext(), mPm, mHandler, mMockZenModeHelper);
        loadStreamXml(baos, false);

        assertFalse(mHelper.areBubblessAllowed(PKG_O, UID_O));
        assertFalse(mHelper.areBubblesAllowed(PKG_O, UID_O));
        assertEquals(PreferencesHelper.LockableAppFields.USER_LOCKED_BUBBLE,
                mHelper.getAppLockedFields(PKG_O, UID_O));
    }