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

Commit 787b7889 authored by Will's avatar Will
Browse files

Ignore ongoing notifications in dreams.

Ignore ongoing notifications when deciding whether or not to show a
notification dot in dreams.

Test: atest DreamOverlayNotificationCountProviderTest
Bug: 232848687
Change-Id: I167860fc12d8a6a01d787d2c9c99b32f48dce57b
parent 42e3b634
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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
@@ -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();
        }
+14 −0
Original line number Diff line number Diff line
@@ -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;

@@ -48,6 +49,8 @@ public class DreamOverlayNotificationCountProviderTest extends SysuiTestCase {
    @Mock
    StatusBarNotification mNotification2;
    @Mock
    StatusBarNotification mNotification3;
    @Mock
    NotificationListenerService.RankingMap mRankingMap;

    private DreamOverlayNotificationCountProvider mProvider;
@@ -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);
@@ -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);
    }
}