Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt +3 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) = Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManager.java +1 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java +13 −7 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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<>(); Loading @@ -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; } Loading @@ -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); } Loading Loading @@ -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()); } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinatorTest.kt +3 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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()) Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt +3 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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) = Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManager.java +1 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java +13 −7 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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<>(); Loading @@ -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; } Loading @@ -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); } Loading Loading @@ -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()); } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinatorTest.kt +3 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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()) Loading