From 3b80ee67fdb5513ddd6b58a0de070547187cbf1e Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Wed, 15 Apr 2020 19:16:16 -0700 Subject: [PATCH] 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 --- .../NotificationInterruptStateProviderImpl.java | 15 +++++++-------- ...otificationInterruptStateProviderImplTest.java | 14 +------------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java index fefad531377fb..da31fe03c9e7b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java @@ -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; } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java index 5cbfcc1bcd064..e254cd2c82a7c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImplTest.java @@ -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);