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
This commit is contained in:
Mady Mellor
2020-04-15 19:16:16 -07:00
parent c8d5a68525
commit 3b80ee67fd
2 changed files with 8 additions and 21 deletions

View File

@@ -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;
}

View File

@@ -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);