Merge "Fetch active notifications on a background thread." into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
963615c766
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user