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

Commit 9c8a2793 authored by Jay Aliomer's avatar Jay Aliomer Committed by Android (Google) Code Review
Browse files

Merge "Cache Blockable state of Notif. Entry" into tm-qpr-dev

parents 35dfc1e3 e0d5c1b9
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -175,6 +175,10 @@ public final class NotificationEntry extends ListEntry {
    public boolean mRemoteEditImeAnimatingAway;
    public boolean mRemoteEditImeVisible;
    private boolean mExpandAnimationRunning;
    /**
     * Flag to determine if the entry is blockable by DnD filters
     */
    private boolean mBlockable;

    /**
     * @param sbn the StatusBarNotification from system server
@@ -253,6 +257,7 @@ public final class NotificationEntry extends ListEntry {
        }

        mRanking = ranking.withAudiblyAlertedInfo(mRanking);
        updateIsBlockable();
    }

    /*
@@ -781,15 +786,20 @@ public final class NotificationEntry extends ListEntry {
     * or is not in an allowList).
     */
    public boolean isBlockable() {
        return mBlockable;
    }

    private void updateIsBlockable() {
        if (getChannel() == null) {
            return false;
            mBlockable = false;
            return;
        }
        if (getChannel().isImportanceLockedByCriticalDeviceFunction()
                && !getChannel().isBlockable()) {
            return false;
            mBlockable = false;
            return;
        }

        return true;
        mBlockable = true;
    }

    private boolean shouldSuppressVisualEffect(int effect) {
+6 −0
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@ public class NotificationEntryTest extends SysuiTestCase {
    @Test
    public void testBlockableEntryWhenCritical() {
        doReturn(true).when(mChannel).isBlockable();
        mEntry.setRanking(mEntry.getRanking());

        assertTrue(mEntry.isBlockable());
    }
@@ -117,6 +118,7 @@ public class NotificationEntryTest extends SysuiTestCase {
    public void testBlockableEntryWhenCriticalAndChannelNotBlockable() {
        doReturn(true).when(mChannel).isBlockable();
        doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
        mEntry.setRanking(mEntry.getRanking());

        assertTrue(mEntry.isBlockable());
    }
@@ -125,6 +127,7 @@ public class NotificationEntryTest extends SysuiTestCase {
    public void testNonBlockableEntryWhenCriticalAndChannelNotBlockable() {
        doReturn(false).when(mChannel).isBlockable();
        doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
        mEntry.setRanking(mEntry.getRanking());

        assertFalse(mEntry.isBlockable());
    }
@@ -164,6 +167,9 @@ public class NotificationEntryTest extends SysuiTestCase {
        doReturn(true).when(mChannel).isImportanceLockedByCriticalDeviceFunction();
        doReturn(false).when(mChannel).isBlockable();

        mEntry.setRanking(mEntry.getRanking());

        assertFalse(mEntry.isBlockable());
        assertTrue(mEntry.isExemptFromDndVisualSuppression());
        assertFalse(mEntry.shouldSuppressAmbient());
    }