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

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

Merge "Cache Blockable state of Notif. Entry"

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


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


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


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

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

        mBlockable = true;
        return true;
    }
    }


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


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


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


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


        mEntry.setRanking(mEntry.getRanking());

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