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

Commit 8172d3ab authored by Ned Burns's avatar Ned Burns
Browse files

Unify pipeline under NotifPipeline wrapper

Hides NotifCollection and NotifListBuilder behind a unified API for
clients.

Test: atest
Change-Id: Ib03cf9fed198c93adaf81bff1967ac1ff607c177
parent 012048d0
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ import android.util.Log;
import com.android.internal.statusbar.NotificationVisibility;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotifCollection;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;

@@ -49,7 +49,7 @@ public class ForegroundServiceNotificationListener {
    public ForegroundServiceNotificationListener(Context context,
            ForegroundServiceController foregroundServiceController,
            NotificationEntryManager notificationEntryManager,
            NotifCollection notifCollection) {
            NotifPipeline notifPipeline) {
        mContext = context;
        mForegroundServiceController = foregroundServiceController;

@@ -77,7 +77,7 @@ public class ForegroundServiceNotificationListener {
        });
        mEntryManager.addNotificationLifetimeExtender(new ForegroundServiceLifetimeExtender());

        notifCollection.addCollectionListener(new NotifCollectionListener() {
        notifPipeline.addCollectionListener(new NotifCollectionListener() {
            @Override
            public void onEntryAdded(NotificationEntry entry) {
                addNotification(entry, entry.getImportance());
+2 −9
Original line number Diff line number Diff line
@@ -30,10 +30,8 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.recents.Recents;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.notification.collection.NotifListBuilderImpl;
import com.android.systemui.statusbar.notification.collection.NotificationRowBinder;
import com.android.systemui.statusbar.notification.collection.NotificationRowBinderImpl;
import com.android.systemui.statusbar.notification.collection.listbuilder.NotifListBuilder;
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder;
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinderImpl;
import com.android.systemui.statusbar.notification.people.PeopleHubModule;
import com.android.systemui.statusbar.phone.KeyguardLiftController;
import com.android.systemui.statusbar.phone.StatusBar;
@@ -113,9 +111,4 @@ public abstract class SystemUIModule {
    @Singleton
    @Binds
    abstract SystemClock bindSystemClock(SystemClockImpl systemClock);

    @Singleton
    @Binds
    abstract NotifListBuilder bindNotifListBuilder(NotifListBuilderImpl impl);

}
+1 −3
Original line number Diff line number Diff line
@@ -16,13 +16,11 @@

package com.android.systemui.statusbar.notification.collection;

import com.android.systemui.statusbar.notification.collection.listbuilder.NotifListBuilder;

import java.util.List;


/**
 * Utility class for dumping the results of a {@link NotifListBuilder} to a debug string.
 * Utility class for dumping the results of a {@link NotifListBuilderImpl} to a debug string.
 */
public class ListDumper {

+8 −19
Original line number Diff line number Diff line
@@ -127,36 +127,25 @@ public class NotifCollection {
     * Sets the class responsible for converting the collection into the list of currently-visible
     * notifications.
     */
    public void setBuildListener(CollectionReadyForBuildListener buildListener) {
    void setBuildListener(CollectionReadyForBuildListener buildListener) {
        Assert.isMainThread();
        mBuildListener = buildListener;
    }

    /**
     * Returns the list of "active" notifications, i.e. the notifications that are currently posted
     * to the phone. In general, this tracks closely to the list maintained by NotificationManager,
     * but it can diverge slightly due to lifetime extenders.
     *
     * The returned list is read-only, unsorted, unfiltered, and ungrouped.
     */
    public Collection<NotificationEntry> getNotifs() {
    /** @see NotifPipeline#getActiveNotifs() */
    Collection<NotificationEntry> getActiveNotifs() {
        Assert.isMainThread();
        return mReadOnlyNotificationSet;
    }

    /**
     * Registers a listener to be informed when notifications are added, removed or updated.
     */
    public void addCollectionListener(NotifCollectionListener listener) {
    /** @see NotifPipeline#addCollectionListener(NotifCollectionListener) */
    void addCollectionListener(NotifCollectionListener listener) {
        Assert.isMainThread();
        mNotifCollectionListeners.add(listener);
    }

    /**
     * Registers a lifetime extender. Lifetime extenders can cause notifications that have been
     * dismissed or retracted to be temporarily retained in the collection.
     */
    public void addNotificationLifetimeExtender(NotifLifetimeExtender extender) {
    /** @see NotifPipeline#addNotificationLifetimeExtender(NotifLifetimeExtender) */
    void addNotificationLifetimeExtender(NotifLifetimeExtender extender) {
        Assert.isMainThread();
        checkForReentrantCall();
        if (mLifetimeExtenders.contains(extender)) {
@@ -169,7 +158,7 @@ public class NotifCollection {
    /**
     * Dismiss a notification on behalf of the user.
     */
    public void dismissNotification(
    void dismissNotification(
            NotificationEntry entry,
            @CancellationReason int reason,
            @NonNull DismissedByUserStats stats) {
+1 −1
Original line number Diff line number Diff line
@@ -110,7 +110,7 @@ public class NotifInflaterImpl implements NotifInflater {
                                DISMISS_SENTIMENT_NEUTRAL,
                                NotificationVisibility.obtain(entry.getKey(),
                                        entry.getRanking().getRank(),
                                        mNotifCollection.getNotifs().size(),
                                        mNotifCollection.getActiveNotifs().size(),
                                        true,
                                        NotificationLogger.getNotificationLocation(entry))
                        ));
Loading