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

Commit 18499214 authored by Jeff DeCew's avatar Jeff DeCew Committed by Automerger Merge Worker
Browse files

Merge "Have the StackCoordinator attach the GroupExpansionManagerImpl to the...

Merge "Have the StackCoordinator attach the GroupExpansionManagerImpl to the Pipeline" into udc-dev am: 2fde8209

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22646453



Change-Id: Ief7c22fb07a2dc4ccd19f39870ee3547153fc4d7
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 20999b54 2fde8209
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())