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

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

Merge "Insert section headers in new notif pipeline"

parents 5efdce4b 52f05447
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -673,7 +673,6 @@ public class ShadeListBuilder implements Dumpable {
                GroupEntry parent = (GroupEntry) entry;
                for (NotificationEntry child : parent.getChildren()) {
                    child.getAttachState().setSection(section);
                    child.getAttachState().setSection(section);
                }
                parent.sortChildren(sChildComparator);
            }
+7 −4
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@ import com.android.systemui.statusbar.notification.collection.NotifPipeline
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
import com.android.systemui.statusbar.notification.collection.render.NodeController
import com.android.systemui.statusbar.notification.dagger.PeopleHeader
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier
import com.android.systemui.statusbar.notification.people.PeopleNotificationIdentifier.Companion.TYPE_NON_PERSON
import javax.inject.Inject
@@ -33,7 +35,8 @@ import javax.inject.Inject
 */
@SysUISingleton
class ConversationCoordinator @Inject constructor(
    private val peopleNotificationIdentifier: PeopleNotificationIdentifier
    private val peopleNotificationIdentifier: PeopleNotificationIdentifier,
    @PeopleHeader peopleHeaderController: NodeController
) : Coordinator {

    private val notificationPromoter = object : NotifPromoter(TAG) {
@@ -43,9 +46,9 @@ class ConversationCoordinator @Inject constructor(
    }

    val sectioner = object : NotifSectioner("People") {
        override fun isInSection(entry: ListEntry): Boolean {
            return isConversation(entry.representativeEntry!!)
        }
        override fun isInSection(entry: ListEntry): Boolean =
                isConversation(entry.representativeEntry!!)
        override fun getHeaderNodeController() = peopleHeaderController
    }

    override fun attach(pipeline: NotifPipeline) {
+12 −1
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import com.android.systemui.statusbar.notification.collection.listbuilder.plugga
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifCollectionListener;
import com.android.systemui.statusbar.notification.collection.notifcollection.NotifLifetimeExtender;
import com.android.systemui.statusbar.notification.collection.render.NodeController;
import com.android.systemui.statusbar.notification.dagger.IncomingHeader;
import com.android.systemui.statusbar.notification.interruption.HeadsUpViewBinder;
import com.android.systemui.statusbar.notification.interruption.NotificationInterruptStateProvider;
import com.android.systemui.statusbar.policy.HeadsUpManager;
@@ -61,6 +63,7 @@ public class HeadsUpCoordinator implements Coordinator {
    private final HeadsUpViewBinder mHeadsUpViewBinder;
    private final NotificationInterruptStateProvider mNotificationInterruptStateProvider;
    private final NotificationRemoteInputManager mRemoteInputManager;
    private final NodeController mIncomingHeaderController;

    // tracks the current HeadUpNotification reported by HeadsUpManager
    private @Nullable NotificationEntry mCurrentHun;
@@ -73,11 +76,13 @@ public class HeadsUpCoordinator implements Coordinator {
            HeadsUpManager headsUpManager,
            HeadsUpViewBinder headsUpViewBinder,
            NotificationInterruptStateProvider notificationInterruptStateProvider,
            NotificationRemoteInputManager remoteInputManager) {
            NotificationRemoteInputManager remoteInputManager,
            @IncomingHeader NodeController incomingHeaderController) {
        mHeadsUpManager = headsUpManager;
        mHeadsUpViewBinder = headsUpViewBinder;
        mNotificationInterruptStateProvider = notificationInterruptStateProvider;
        mRemoteInputManager = remoteInputManager;
        mIncomingHeaderController = incomingHeaderController;
    }

    @Override
@@ -196,6 +201,12 @@ public class HeadsUpCoordinator implements Coordinator {
        public boolean isInSection(ListEntry entry) {
            return isCurrentlyShowingHun(entry);
        }

        @Nullable
        @Override
        public NodeController getHeaderNodeController() {
            return mIncomingHeaderController;
        }
    };

    private final OnHeadsUpChangedListener mOnHeadsUpChangedListener =
+24 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

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

import android.annotation.Nullable;

import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.notification.collection.ListEntry;
@@ -24,6 +26,9 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter;
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner;
import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider;
import com.android.systemui.statusbar.notification.collection.render.NodeController;
import com.android.systemui.statusbar.notification.dagger.AlertingHeader;
import com.android.systemui.statusbar.notification.dagger.SilentHeader;

import javax.inject.Inject;

@@ -40,13 +45,19 @@ public class RankingCoordinator implements Coordinator {

    private final StatusBarStateController mStatusBarStateController;
    private final HighPriorityProvider mHighPriorityProvider;
    private final NodeController mSilentHeaderController;
    private final NodeController mAlertingHeaderController;

    @Inject
    public RankingCoordinator(
            StatusBarStateController statusBarStateController,
            HighPriorityProvider highPriorityProvider) {
            HighPriorityProvider highPriorityProvider,
            @AlertingHeader NodeController alertingHeaderController,
            @SilentHeader NodeController silentHeaderController) {
        mStatusBarStateController = statusBarStateController;
        mHighPriorityProvider = highPriorityProvider;
        mAlertingHeaderController = alertingHeaderController;
        mSilentHeaderController = silentHeaderController;
    }

    @Override
@@ -70,6 +81,12 @@ public class RankingCoordinator implements Coordinator {
        public boolean isInSection(ListEntry entry) {
            return mHighPriorityProvider.isHighPriority(entry);
        }

        @Nullable
        @Override
        public NodeController getHeaderNodeController() {
            return mAlertingHeaderController;
        }
    };

    private final NotifSectioner mSilentNotifSectioner = new NotifSectioner("Silent") {
@@ -77,6 +94,12 @@ public class RankingCoordinator implements Coordinator {
        public boolean isInSection(ListEntry entry) {
            return !mHighPriorityProvider.isHighPriority(entry);
        }

        @Nullable
        @Override
        public NodeController getHeaderNodeController() {
            return mSilentHeaderController;
        }
    };

    /**
+4 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.notification.collection.listbuilder

import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
import com.android.systemui.statusbar.notification.collection.render.NodeController

data class NotifSection(
    val sectioner: NotifSectioner,
@@ -24,4 +25,7 @@ data class NotifSection(
) {
    val label: String
        get() = "Section($index, \"${sectioner.name}\")"

    val headerController: NodeController?
        get() = sectioner.headerNodeController
}
Loading