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

Commit 11002dbc authored by Jeff DeCew's avatar Jeff DeCew
Browse files

Have the StackCoordinator attach the GroupExpansionManagerImpl to the Pipeline

Test: atest SystemUITests
Fixes: 234044147
Change-Id: I3b9ffc750ae028c773558ca72baeaf29fc5349bf
parent b5c0e284
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.statusbar.notification.collection.coordinator
import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.NotifPipeline
import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope
import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManagerImpl
import com.android.systemui.statusbar.notification.collection.render.NotifStackController
import com.android.systemui.statusbar.notification.collection.render.NotifStats
import com.android.systemui.statusbar.notification.stack.BUCKET_SILENT
@@ -32,11 +33,13 @@ import javax.inject.Inject
 */
@CoordinatorScope
class StackCoordinator @Inject internal constructor(
    private val groupExpansionManagerImpl: GroupExpansionManagerImpl,
    private val notificationIconAreaController: NotificationIconAreaController
) : Coordinator {

    override fun attach(pipeline: NotifPipeline) {
        pipeline.addOnAfterRenderListListener(::onAfterRenderList)
        groupExpansionManagerImpl.attach(pipeline)
    }

    fun onAfterRenderList(entries: List<ListEntry>, controller: NotifStackController) =
+1 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

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

import com.android.systemui.Dumpable;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;

@@ -25,7 +24,7 @@ import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
 * expanded/collapsed state of a single notification which is tracked within each
 * ExpandableNotificationRow.
 */
public interface GroupExpansionManager extends Dumpable {
public interface GroupExpansionManager {

    /**
     * Register a listener for group expansion changes
+13 −7
Original line number Diff line number Diff line
@@ -16,12 +16,15 @@

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

import androidx.annotation.NonNull;

import com.android.systemui.Dumpable;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.notification.collection.GroupEntry;
import com.android.systemui.statusbar.notification.collection.ListEntry;
import com.android.systemui.statusbar.notification.collection.NotifPipeline;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.coordinator.Coordinator;
import com.android.systemui.statusbar.notification.collection.listbuilder.OnBeforeRenderListListener;

import java.io.PrintWriter;
@@ -36,7 +39,8 @@ import javax.inject.Inject;
 * expanded state.
 */
@SysUISingleton
public class GroupExpansionManagerImpl implements GroupExpansionManager, Coordinator {
public class GroupExpansionManagerImpl implements GroupExpansionManager, Dumpable {
    private final DumpManager mDumpManager;
    private final GroupMembershipManager mGroupMembershipManager;
    private final Set<OnGroupExpansionChangeListener> mOnGroupChangeListeners = new HashSet<>();

@@ -44,7 +48,9 @@ public class GroupExpansionManagerImpl implements GroupExpansionManager, Coordin
    private final Set<NotificationEntry> mExpandedGroups = new HashSet<>();

    @Inject
    public GroupExpansionManagerImpl(GroupMembershipManager groupMembershipManager) {
    public GroupExpansionManagerImpl(DumpManager dumpManager,
            GroupMembershipManager groupMembershipManager) {
        mDumpManager = dumpManager;
        mGroupMembershipManager = groupMembershipManager;
    }

@@ -61,8 +67,8 @@ public class GroupExpansionManagerImpl implements GroupExpansionManager, Coordin
        mExpandedGroups.removeIf(expandedGroup -> !renderingSummaries.contains(expandedGroup));
    };

    @Override
    public void attach(NotifPipeline pipeline) {
        mDumpManager.registerDumpable(this);
        pipeline.addOnBeforeRenderListListener(mNotifTracker);
    }

@@ -102,11 +108,11 @@ public class GroupExpansionManagerImpl implements GroupExpansionManager, Coordin
    }

    @Override
    public void dump(PrintWriter pw, String[] args) {
    public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
        pw.println("NotificationEntryExpansion state:");
        pw.println("  # expanded groups: " +  mExpandedGroups.size());
        pw.println("  mExpandedGroups: " + mExpandedGroups.size());
        for (NotificationEntry entry : mExpandedGroups) {
            pw.println("    summary key of expanded group: " + entry.getKey());
            pw.println("  * " + entry.getKey());
        }
    }

+3 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection
import com.android.systemui.statusbar.notification.collection.listbuilder.OnAfterRenderListListener
import com.android.systemui.statusbar.notification.collection.render.GroupExpansionManagerImpl
import com.android.systemui.statusbar.notification.collection.render.NotifStackController
import com.android.systemui.statusbar.notification.collection.render.NotifStats
import com.android.systemui.statusbar.notification.stack.BUCKET_ALERTING
@@ -49,6 +50,7 @@ class StackCoordinatorTest : SysuiTestCase() {
    private lateinit var entry: NotificationEntry

    @Mock private lateinit var pipeline: NotifPipeline
    @Mock private lateinit var groupExpansionManagerImpl: GroupExpansionManagerImpl
    @Mock private lateinit var notificationIconAreaController: NotificationIconAreaController
    @Mock private lateinit var stackController: NotifStackController
    @Mock private lateinit var section: NotifSection
@@ -56,7 +58,7 @@ class StackCoordinatorTest : SysuiTestCase() {
    @Before
    fun setUp() {
        initMocks(this)
        coordinator = StackCoordinator(notificationIconAreaController)
        coordinator = StackCoordinator(groupExpansionManagerImpl, notificationIconAreaController)
        coordinator.attach(pipeline)
        afterRenderListListener = withArgCaptor {
            verify(pipeline).addOnAfterRenderListListener(capture())