Loading packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayNotificationCountProvider.java +5 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ import javax.inject.Inject; /*** * {@link DreamOverlayNotificationCountProvider} provides the current notification count to * registered callbacks. * registered callbacks. Ongoing notifications are not included in the count. */ @SysUISingleton public class DreamOverlayNotificationCountProvider Loading @@ -49,6 +49,10 @@ public class DreamOverlayNotificationCountProvider @Override public void onNotificationPosted( StatusBarNotification sbn, NotificationListenerService.RankingMap rankingMap) { if (sbn.isOngoing()) { // Don't count ongoing notifications. return; } mNotificationKeys.add(sbn.getKey()); reportNotificationCountChanged(); } Loading packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayNotificationCountProviderTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.dreams; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -48,6 +49,8 @@ public class DreamOverlayNotificationCountProviderTest extends SysuiTestCase { @Mock StatusBarNotification mNotification2; @Mock StatusBarNotification mNotification3; @Mock NotificationListenerService.RankingMap mRankingMap; private DreamOverlayNotificationCountProvider mProvider; Loading @@ -58,6 +61,8 @@ public class DreamOverlayNotificationCountProviderTest extends SysuiTestCase { when(mNotification1.getKey()).thenReturn("key1"); when(mNotification2.getKey()).thenReturn("key2"); when(mNotification3.getKey()).thenReturn("key3"); when(mNotification3.isOngoing()).thenReturn(true); final StatusBarNotification[] notifications = {mNotification1}; when(mNotificationListener.getActiveNotifications()).thenReturn(notifications); Loading @@ -83,4 +88,13 @@ public class DreamOverlayNotificationCountProviderTest extends SysuiTestCase { handlerArgumentCaptor.getValue().onNotificationRemoved(mNotification1, mRankingMap); verify(mCallback).onNotificationCountChanged(0); } @Test public void testPostingOngoingNotificationDoesNotCallCallbackWithNotificationCount() { final ArgumentCaptor<NotificationHandler> handlerArgumentCaptor = ArgumentCaptor.forClass(NotificationHandler.class); verify(mNotificationListener).addNotificationHandler(handlerArgumentCaptor.capture()); handlerArgumentCaptor.getValue().onNotificationPosted(mNotification3, mRankingMap); verify(mCallback, never()).onNotificationCountChanged(2); } } Loading
packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayNotificationCountProvider.java +5 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ import javax.inject.Inject; /*** * {@link DreamOverlayNotificationCountProvider} provides the current notification count to * registered callbacks. * registered callbacks. Ongoing notifications are not included in the count. */ @SysUISingleton public class DreamOverlayNotificationCountProvider Loading @@ -49,6 +49,10 @@ public class DreamOverlayNotificationCountProvider @Override public void onNotificationPosted( StatusBarNotification sbn, NotificationListenerService.RankingMap rankingMap) { if (sbn.isOngoing()) { // Don't count ongoing notifications. return; } mNotificationKeys.add(sbn.getKey()); reportNotificationCountChanged(); } Loading
packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayNotificationCountProviderTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.dreams; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading Loading @@ -48,6 +49,8 @@ public class DreamOverlayNotificationCountProviderTest extends SysuiTestCase { @Mock StatusBarNotification mNotification2; @Mock StatusBarNotification mNotification3; @Mock NotificationListenerService.RankingMap mRankingMap; private DreamOverlayNotificationCountProvider mProvider; Loading @@ -58,6 +61,8 @@ public class DreamOverlayNotificationCountProviderTest extends SysuiTestCase { when(mNotification1.getKey()).thenReturn("key1"); when(mNotification2.getKey()).thenReturn("key2"); when(mNotification3.getKey()).thenReturn("key3"); when(mNotification3.isOngoing()).thenReturn(true); final StatusBarNotification[] notifications = {mNotification1}; when(mNotificationListener.getActiveNotifications()).thenReturn(notifications); Loading @@ -83,4 +88,13 @@ public class DreamOverlayNotificationCountProviderTest extends SysuiTestCase { handlerArgumentCaptor.getValue().onNotificationRemoved(mNotification1, mRankingMap); verify(mCallback).onNotificationCountChanged(0); } @Test public void testPostingOngoingNotificationDoesNotCallCallbackWithNotificationCount() { final ArgumentCaptor<NotificationHandler> handlerArgumentCaptor = ArgumentCaptor.forClass(NotificationHandler.class); verify(mNotificationListener).addNotificationHandler(handlerArgumentCaptor.capture()); handlerArgumentCaptor.getValue().onNotificationPosted(mNotification3, mRankingMap); verify(mCallback, never()).onNotificationCountChanged(2); } }