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

This commit is contained in:
William Leshner
2022-03-31 17:04:40 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 4 deletions

View File

@@ -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);
Arrays.stream(notificationListener.getActiveNotifications())
.forEach(sbn -> mNotificationKeys.add(sbn.getKey()));
bgExecutor.execute(() -> {
Arrays.stream(notificationListener.getActiveNotifications())
.forEach(sbn -> mNotificationKeys.add(sbn.getKey()));
reportNotificationCountChanged();
}
);
}
@Override

View File

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