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

Commit 3b80ee67 authored by Mady Mellor's avatar Mady Mellor
Browse files

Allow bubbles for HUNs that were "snoozed" via the gesture

When a user pushes a HUN up and out of the way that snoozes
notifications from that package for a bit -- that action
shouldn't impact whether a bubble can appear or not
from an app. This CL fixes that.

Bug: 149768761
Test: atest NotificationInterruptionStateProviderImplTest
Change-Id: I461a9bdf54982ec245c456def80bd8caf1520522
parent c8d5a685
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -206,6 +206,13 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter
            return false;
        }

        if (isSnoozedPackage(sbn)) {
            if (DEBUG_HEADS_UP) {
                Log.d(TAG, "No alerting: snoozed package: " + sbn.getKey());
            }
            return false;
        }

        boolean inShade = mStatusBarStateController.getState() == SHADE;
        if (entry.isBubble() && inShade) {
            if (DEBUG_HEADS_UP) {
@@ -365,14 +372,6 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter
                return false;
            }
        }

        if (isSnoozedPackage(sbn)) {
            if (DEBUG_HEADS_UP) {
                Log.d(TAG, "No alerting: snoozed package: " + sbn.getKey());
            }
            return false;
        }

        return true;
    }

+1 −13
Original line number Diff line number Diff line
@@ -115,15 +115,6 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase {
        when(mNotificationFilter.shouldFilterOut(any())).thenReturn(false);
    }

    /**
     * Sets up the state such that any requests to
     * {@link NotificationInterruptStateProviderImpl#canAlertAwakeCommon(NotificationEntry)} will
     * pass as long its provided NotificationEntry fulfills launch fullscreen check.
     */
    private void ensureStateForAlertAwakeCommon() {
        when(mHeadsUpManager.isSnoozed(any())).thenReturn(false);
    }

    /**
     * Sets up the state such that any requests to
     * {@link NotificationInterruptStateProviderImpl#shouldHeadsUp(NotificationEntry)} will
@@ -131,7 +122,7 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase {
     */
    private void ensureStateForHeadsUpWhenAwake() throws RemoteException {
        ensureStateForAlertCommon();
        ensureStateForAlertAwakeCommon();
        when(mHeadsUpManager.isSnoozed(any())).thenReturn(false);

        when(mStatusBarStateController.isDozing()).thenReturn(false);
        when(mDreamManager.isDreaming()).thenReturn(false);
@@ -157,7 +148,6 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase {
     */
    private void ensureStateForBubbleUp() {
        ensureStateForAlertCommon();
        ensureStateForAlertAwakeCommon();
    }

    @Test
@@ -392,7 +382,6 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase {
    @Test
    public void testShouldNotHeadsUp_snoozedPackage() {
        NotificationEntry entry = createNotification(IMPORTANCE_DEFAULT);
        ensureStateForAlertAwakeCommon();

        when(mHeadsUpManager.isSnoozed(entry.getSbn().getPackageName())).thenReturn(true);

@@ -402,7 +391,6 @@ public class NotificationInterruptStateProviderImplTest extends SysuiTestCase {

    @Test
    public void testShouldNotHeadsUp_justLaunchedFullscreen() {
        ensureStateForAlertAwakeCommon();

        // On screen alerts don't happen when that package has just launched fullscreen.
        NotificationEntry entry = createNotification(IMPORTANCE_DEFAULT);