summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayNotificationCountProvider.java14
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayNotificationCountProviderTest.java3
2 files changed, 13 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayNotificationCountProvider.java b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayNotificationCountProvider.java
index aaa34ed32c7e..6589f26dbde2 100644
--- a/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayNotificationCountProvider.java
+++ b/packages/SystemUI/src/com/android/systemui/dreams/DreamOverlayNotificationCountProvider.java
@@ -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
diff --git a/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayNotificationCountProviderTest.java b/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayNotificationCountProviderTest.java
index c86122141c8f..b7de6c15459c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayNotificationCountProviderTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/dreams/DreamOverlayNotificationCountProviderTest.java
@@ -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);
}