Merge "Have the StackCoordinator attach the GroupExpansionManagerImpl to the Pipeline" into udc-dev am: 2fde820935 am: 18499214d6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22646453
Change-Id: Ifbb3182d21a6e9a33dc07e81aa97314d932387e0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt
index 1c96e8c..62a0d13 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinator.kt
@@ -19,6 +19,7 @@
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 @@
*/
@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) =
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManager.java
index d2df07e..30386ab 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManager.java
@@ -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 @@
* 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
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java
index 1b3f83d..4568c0c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/render/GroupExpansionManagerImpl.java
@@ -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 @@
* 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 @@
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 @@
mExpandedGroups.removeIf(expandedGroup -> !renderingSummaries.contains(expandedGroup));
};
- @Override
public void attach(NotifPipeline pipeline) {
+ mDumpManager.registerDumpable(this);
pipeline.addOnBeforeRenderListListener(mNotifTracker);
}
@@ -102,11 +108,11 @@
}
@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());
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinatorTest.kt
index 70266e4..655bd72 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinatorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/StackCoordinatorTest.kt
@@ -24,6 +24,7 @@
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 @@
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 @@
@Before
fun setUp() {
initMocks(this)
- coordinator = StackCoordinator(notificationIconAreaController)
+ coordinator = StackCoordinator(groupExpansionManagerImpl, notificationIconAreaController)
coordinator.attach(pipeline)
afterRenderListListener = withArgCaptor {
verify(pipeline).addOnAfterRenderListListener(capture())