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

Commit 963615c7 authored by William Leshner's avatar William Leshner Committed by Android (Google) Code Review
Browse files

Merge "Fetch active notifications on a background thread." into tm-dev

parents 121a209a d62f9fbc
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.statusbar.NotificationListener;
import com.android.systemui.statusbar.NotificationListener.NotificationHandler;
import com.android.systemui.statusbar.policy.CallbackController;
@@ -30,6 +31,7 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.Executor;

import javax.inject.Inject;

@@ -78,10 +80,16 @@ public class DreamOverlayNotificationCountProvider

    @Inject
    public DreamOverlayNotificationCountProvider(
            NotificationListener notificationListener) {
            NotificationListener notificationListener,
            @Background Executor bgExecutor) {
        notificationListener.addNotificationHandler(mNotificationHandler);

        bgExecutor.execute(() -> {
                    Arrays.stream(notificationListener.getActiveNotifications())
                            .forEach(sbn -> mNotificationKeys.add(sbn.getKey()));
                    reportNotificationCountChanged();
                }
        );
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -61,7 +61,8 @@ public class DreamOverlayNotificationCountProviderTest extends SysuiTestCase {

        final StatusBarNotification[] notifications = {mNotification1};
        when(mNotificationListener.getActiveNotifications()).thenReturn(notifications);
        mProvider = new DreamOverlayNotificationCountProvider(mNotificationListener);
        mProvider = new DreamOverlayNotificationCountProvider(
                mNotificationListener, Runnable::run);
        mProvider.addCallback(mCallback);
    }