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

Commit 52052d0f authored by lyn's avatar lyn Committed by Lyn Han
Browse files

Replace ListEntry/GroupEntry with PipelineEntry

Add methods to PipelineEntry currently called on
ListEntry and NotificationEntry

Add instanceof checks for GroupEntry-specific logic

Provide empty implementations in BundleEntry

Bug: 394483200
Test: build and use notifications normally
Flag: com.android.systemui.notification_bundle_ui
Change-Id: Ib39edfa37698edd8fee96c2fb3d3376532349a56
parent 0fd067c6
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.jank.interactionJankMonitor
import com.android.systemui.kosmos.testScope
import com.android.systemui.res.R
import com.android.systemui.statusbar.notification.collection.GroupEntry
import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.data.repository.NotificationLaunchAnimationRepository
@@ -165,7 +166,10 @@ class NotificationTransitionAnimatorControllerTest : SysuiTestCase() {
            .setSummary(summary)
            .addChild(notification.entry)
            .build()
        assertSame(summary, notification.entry.parent?.summary)

        val parentSummary = if (notification.entry.parent is GroupEntry)
            (notification.entry.parent as GroupEntry).summary else null
        assertSame(summary, parentSummary)

        `when`(headsUpManager.isHeadsUpEntry(notificationKey)).thenReturn(false)
        `when`(headsUpManager.isHeadsUpEntry(summary.key)).thenReturn(true)
+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder
import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.collection.PipelineEntry
import com.android.systemui.statusbar.notification.collection.getAttachState
import com.android.systemui.statusbar.notification.collection.listbuilder.NotifSection
import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifSectioner
@@ -409,7 +410,7 @@ private fun buildSection(
): NotifSection {
    return NotifSection(object : NotifSectioner("Section $index (bucket=$bucket)", bucket) {

        override fun isInSection(entry: ListEntry?): Boolean {
        override fun isInSection(entry: PipelineEntry?): Boolean {
            throw NotImplementedError("This should never be called")
        }

+3 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.systemui.statusbar.notification.collection.GroupEntryBuilder
import com.android.systemui.statusbar.notification.collection.ListEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder
import com.android.systemui.statusbar.notification.collection.PipelineEntry
import com.android.systemui.statusbar.notification.collection.ShadeListBuilder
import com.android.systemui.statusbar.notification.collection.listbuilder.OnAfterRenderEntryListener
import com.android.systemui.statusbar.notification.collection.listbuilder.OnAfterRenderGroupListener
@@ -40,6 +41,7 @@ import org.mockito.kotlin.spy
import org.mockito.kotlin.times
import org.mockito.kotlin.verify
import org.mockito.kotlin.verifyNoMoreInteractions
import java.nio.channels.Pipe

@SmallTest
@RunWith(AndroidJUnit4::class)
@@ -198,7 +200,7 @@ class RenderStageManagerTest : SysuiTestCase() {
        )

    private class FakeNotifViewRenderer : NotifViewRenderer {
        override fun onRenderList(notifList: List<ListEntry>) {}
        override fun onRenderList(notifList: List<PipelineEntry>) {}

        override fun getGroupController(group: GroupEntry): NotifGroupController = mock()

+3 −2
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.view.ViewGroup
import com.android.internal.jank.InteractionJankMonitor
import com.android.systemui.animation.ActivityTransitionAnimator
import com.android.systemui.animation.TransitionAnimator
import com.android.systemui.statusbar.notification.collection.GroupEntry
import com.android.systemui.statusbar.notification.domain.interactor.NotificationLaunchAnimationInteractor
import com.android.systemui.statusbar.notification.headsup.HeadsUpManager
import com.android.systemui.statusbar.notification.headsup.HeadsUpUtil
@@ -157,8 +158,8 @@ class NotificationTransitionAnimatorController(

    private val headsUpNotificationRow: ExpandableNotificationRow?
        get() {
            val summaryEntry = notificationEntry.parent?.summary

            val pipelineParent = notificationEntry.parent
            val summaryEntry = (pipelineParent as? GroupEntry)?.summary
            return when {
                headsUpManager.isHeadsUpEntry(notificationKey) -> notification
                summaryEntry == null -> null
+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.internal.util.ContrastColorUtil;
import com.android.systemui.res.R;
import com.android.systemui.statusbar.notification.collection.EntryAdapter;
import com.android.systemui.statusbar.notification.collection.ListEntry;
import com.android.systemui.statusbar.notification.collection.PipelineEntry;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.util.Compile;

@@ -80,7 +81,7 @@ public class NotificationUtils {
    private static final boolean INCLUDE_HASH_CODE_IN_LIST_ENTRY_LOG_KEY = false;

    /** Get the notification key, reformatted for logging, for the (optional) entry */
    public static String logKey(ListEntry entry) {
    public static String logKey(PipelineEntry entry) {
        if (entry == null) {
            return "null";
        }
Loading