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

Commit 73871cad authored by Julia Reynolds's avatar Julia Reynolds Committed by Android (Google) Code Review
Browse files

Merge "Allow users to block notification channels" into tm-dev

parents f4adad36 f7ec124b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1116,7 +1116,8 @@ public class PreferencesHelper implements RankingConfig {
            }

            if (mPermissionHelper.isMigrationEnabled()) {
                if (mPermissionHelper.isPermissionFixed(r.pkg, UserHandle.getUserId(r.uid))) {
                if (mPermissionHelper.isPermissionFixed(r.pkg, UserHandle.getUserId(r.uid))
                        && !(channel.isBlockable() || channel.getImportance() == IMPORTANCE_NONE)) {
                    updatedChannel.setImportance(channel.getImportance());
                }
            } else {
+39 −0
Original line number Diff line number Diff line
@@ -4015,6 +4015,45 @@ public class PreferencesHelperTest extends UiServiceTestCase {
                mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false).canBubble());
    }

    @Test
    public void testUpdateNotificationChannel_fixedPermission_butUserPreviouslyBlockedIt() {
        when(mPermissionHelper.isMigrationEnabled()).thenReturn(true);
        when(mPermissionHelper.isPermissionFixed(PKG_O, 0)).thenReturn(true);

        NotificationChannel a = new NotificationChannel("a", "a", IMPORTANCE_NONE);
        mHelper.createNotificationChannel(PKG_O, UID_O, a, false, false);

        NotificationChannel update = new NotificationChannel("a", "a", IMPORTANCE_HIGH);
        update.setAllowBubbles(false);

        mHelper.updateNotificationChannel(PKG_O, UID_O, update, true);

        assertEquals(IMPORTANCE_HIGH,
                mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false).getImportance());
        assertEquals(false,
                mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false).canBubble());
    }

    @Test
    public void testUpdateNotificationChannel_fixedPermission_butAppAllowsIt() {
        when(mPermissionHelper.isMigrationEnabled()).thenReturn(true);
        when(mPermissionHelper.isPermissionFixed(PKG_O, 0)).thenReturn(true);

        NotificationChannel a = new NotificationChannel("a", "a", IMPORTANCE_HIGH);
        a.setBlockable(true);
        mHelper.createNotificationChannel(PKG_O, UID_O, a, true, false);

        NotificationChannel update = new NotificationChannel("a", "a", IMPORTANCE_NONE);
        update.setAllowBubbles(false);

        mHelper.updateNotificationChannel(PKG_O, UID_O, update, true);

        assertEquals(IMPORTANCE_NONE,
                mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false).getImportance());
        assertEquals(false,
                mHelper.getNotificationChannel(PKG_O, UID_O, a.getId(), false).canBubble());
    }

    @Test
    public void testUpdateNotificationChannel_notFixedPermission() {
        when(mPermissionHelper.isMigrationEnabled()).thenReturn(true);