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

Commit 9b47c2a4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Hook up bind pipeline to CommonNotifCollection"

parents b0fe609d 65c38b39
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ class NotificationsControllerImpl @Inject constructor(
                presenter,
                listContainer,
                bindRowCallback)
        notifBindPipelineInitializer.initialize()

        if (featureFlags.isNewNotifPipelineEnabled) {
            newNotifPipeline.get().initialize(notificationListener, notificationRowBinder)
@@ -99,7 +100,6 @@ class NotificationsControllerImpl @Inject constructor(
        if (featureFlags.isNewNotifPipelineRenderingEnabled) {
            // TODO
        } else {
            notifBindPipelineInitializer.initialize()
            notificationRowBinder.setInflationCallback(entryManager)

            remoteInputUriController.attach(entryManager)
+7 −11
Original line number Diff line number Diff line
@@ -25,11 +25,10 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.os.CancellationSignal;

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.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.inflation.NotificationRowBinder;
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;

import java.util.Map;
@@ -78,8 +77,8 @@ public final class NotifBindPipeline {
    private BindStage mStage;

    @Inject
    NotifBindPipeline(NotificationEntryManager entryManager) {
        entryManager.addNotificationEntryListener(mEntryListener);
    NotifBindPipeline(CommonNotifCollection collection) {
        collection.addCollectionListener(mCollectionListener);
    }

    /**
@@ -158,18 +157,15 @@ public final class NotifBindPipeline {
        callbacks.clear();
    }

    //TODO: Move this to onManageEntry hook when we split that from add/remove
    private final NotificationEntryListener mEntryListener = new NotificationEntryListener() {
    private final NotifCollectionListener mCollectionListener = new NotifCollectionListener() {
        @Override
        public void onPendingEntryAdded(NotificationEntry entry) {
        public void onEntryInit(NotificationEntry entry) {
            mBindEntries.put(entry, new BindEntry());
            mStage.createStageParams(entry);
        }

        @Override
        public void onEntryRemoved(NotificationEntry entry,
                @Nullable NotificationVisibility visibility,
                boolean removedByUser) {
        public void onEntryCleanUp(NotificationEntry entry) {
            BindEntry bindEntry = mBindEntries.remove(entry);
            ExpandableNotificationRow row = bindEntry.row;
            if (row != null) {
+9 −9
Original line number Diff line number Diff line
@@ -28,9 +28,9 @@ import androidx.core.os.CancellationSignal;
import androidx.test.filters.SmallTest;

import com.android.systemui.SysuiTestCase;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
import com.android.systemui.statusbar.notification.row.NotifBindPipeline.BindCallback;

import org.junit.Before;
@@ -57,17 +57,17 @@ public class NotifBindPipelineTest extends SysuiTestCase {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        NotificationEntryManager entryManager = mock(NotificationEntryManager.class);
        CommonNotifCollection collection = mock(CommonNotifCollection.class);

        mBindPipeline = new NotifBindPipeline(entryManager);
        mBindPipeline = new NotifBindPipeline(collection);
        mBindPipeline.setStage(mStage);

        ArgumentCaptor<NotificationEntryListener> entryListenerCaptor =
                ArgumentCaptor.forClass(NotificationEntryListener.class);
        verify(entryManager).addNotificationEntryListener(entryListenerCaptor.capture());
        NotificationEntryListener entryListener = entryListenerCaptor.getValue();
        ArgumentCaptor<NotifCollectionListener> collectionListenerCaptor =
                ArgumentCaptor.forClass(NotifCollectionListener.class);
        verify(collection).addCollectionListener(collectionListenerCaptor.capture());
        NotifCollectionListener listener = collectionListenerCaptor.getValue();

        entryListener.onPendingEntryAdded(mEntry);
        listener.onEntryInit(mEntry);
    }

    @Test
+10 −10
Original line number Diff line number Diff line
@@ -50,10 +50,10 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.NotificationMediaManager;
import com.android.systemui.statusbar.NotificationRemoteInputManager;
import com.android.systemui.statusbar.SmartReplyController;
import com.android.systemui.statusbar.notification.NotificationEntryListener;
import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.ExpansionLogger;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow.OnExpandClickListener;
import com.android.systemui.statusbar.notification.row.NotificationRowContentBinder.InflationFlag;
@@ -90,7 +90,7 @@ public class NotificationTestHelper {
    private ExpandableNotificationRow mRow;
    private HeadsUpManagerPhone mHeadsUpManager;
    private final NotifBindPipeline mBindPipeline;
    private final NotificationEntryListener mBindPipelineEntryListener;
    private final NotifCollectionListener mBindPipelineEntryListener;
    private final RowContentBindStage mBindStage;
    private StatusBarStateController mStatusBarStateController;

@@ -114,15 +114,15 @@ public class NotificationTestHelper {
        contentBinder.setInflateSynchronously(true);
        mBindStage = new RowContentBindStage(contentBinder, mock(IStatusBarService.class));

        NotificationEntryManager entryManager = mock(NotificationEntryManager.class);
        CommonNotifCollection collection = mock(CommonNotifCollection.class);

        mBindPipeline = new NotifBindPipeline(entryManager);
        mBindPipeline = new NotifBindPipeline(collection);
        mBindPipeline.setStage(mBindStage);

        ArgumentCaptor<NotificationEntryListener> entryListenerCaptor =
                ArgumentCaptor.forClass(NotificationEntryListener.class);
        verify(entryManager).addNotificationEntryListener(entryListenerCaptor.capture());
        mBindPipelineEntryListener = entryListenerCaptor.getValue();
        ArgumentCaptor<NotifCollectionListener> collectionListenerCaptor =
                ArgumentCaptor.forClass(NotifCollectionListener.class);
        verify(collection).addCollectionListener(collectionListenerCaptor.capture());
        mBindPipelineEntryListener = collectionListenerCaptor.getValue();
    }

    /**
@@ -377,7 +377,7 @@ public class NotificationTestHelper {
        entry.createIcons(mContext, entry.getSbn());
        row.setEntry(entry);

        mBindPipelineEntryListener.onPendingEntryAdded(entry);
        mBindPipelineEntryListener.onEntryInit(entry);
        mBindPipeline.manageRow(entry, row);

        row.initialize(