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

Commit 74201279 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

New Pipeline: Show group count

Bug: 204674942
Test: post a group; observe count in expander
Change-Id: I24062268336b53e35895d5a018cf08b798aa0137
parent 91da8a29
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -18,8 +18,10 @@ package com.android.systemui.statusbar.notification.collection.render

import android.content.Context
import android.view.View
import com.android.systemui.statusbar.notification.collection.GroupEntry
import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.ShadeListBuilder
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
import com.android.systemui.statusbar.phone.NotificationIconAreaController
import javax.inject.Inject
@@ -32,7 +34,7 @@ class ShadeViewManager constructor(
    context: Context,
    listContainer: NotificationListContainer,
    logger: ShadeViewDifferLogger,
    viewBarn: NotifViewBarn,
    private val viewBarn: NotifViewBarn,
    private val notificationIconAreaController: NotificationIconAreaController
) {
    // We pass a shim view here because the listContainer may not actually have a view associated
@@ -46,8 +48,17 @@ class ShadeViewManager constructor(

    private fun onNewNotifTree(notifList: List<ListEntry>) {
        viewDiffer.applySpec(specBuilder.buildNodeSpec(rootController, notifList))
        updateGroupCounts(notifList)
        notificationIconAreaController.updateNotificationIcons(notifList)
    }

    private fun updateGroupCounts(notifList: List<ListEntry>) {
        notifList.asSequence().filterIsInstance<GroupEntry>().forEach { groupEntry ->
            val controller = viewBarn.requireView(checkNotNull(groupEntry.summary))
            val row = controller.view as ExpandableNotificationRow
            row.setUntruncatedChildCount(groupEntry.untruncatedChildCount)
        }
    }
}

class ShadeViewManagerFactory @Inject constructor(