From 0bed2ae386126756b22f16bda077a6181854e302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Mart=C3=ADn?= Date: Mon, 3 Nov 2025 14:44:29 +0100 Subject: [PATCH] Use the new `fromPinnedEvents` parameter in `JoinedRoomLoadedFlowNode` through `TimelineBindings` --- .../room/joined/JoinedRoomLoadedFlowNode.kt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt b/appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt index 16eaff89b1..8216ee512c 100644 --- a/appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt +++ b/appnav/src/main/kotlin/io/element/android/appnav/room/joined/JoinedRoomLoadedFlowNode.kt @@ -22,10 +22,12 @@ import dev.zacsweers.metro.Assisted import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode import io.element.android.appnav.di.RoomGraphFactory +import io.element.android.appnav.di.TimelineBindings import io.element.android.appnav.room.RoomNavigationTarget import io.element.android.features.forward.api.ForwardEntryPoint import io.element.android.features.messages.api.MessagesEntryPoint import io.element.android.features.messages.api.MessagesEntryPointNode +import io.element.android.features.messages.api.pinned.PinnedEventsTimelineProvider import io.element.android.features.roomdetails.api.RoomDetailsEntryPoint import io.element.android.features.space.api.SpaceEntryPoint import io.element.android.libraries.architecture.BackstackView @@ -44,6 +46,7 @@ import io.element.android.libraries.matrix.api.core.ThreadId import io.element.android.libraries.matrix.api.core.UserId import io.element.android.libraries.matrix.api.permalink.PermalinkData import io.element.android.libraries.matrix.api.room.JoinedRoom +import io.element.android.libraries.matrix.api.timeline.TimelineProvider import io.element.android.services.appnavstate.api.ActiveRoomsHolder import io.element.android.services.appnavstate.api.AppNavigationStateService import kotlinx.coroutines.CoroutineScope @@ -136,8 +139,8 @@ class JoinedRoomLoadedFlowNode( callback.handlePermalinkClick(data, pushToBackstack) } - override fun startForwardEventFlow(eventId: EventId) { - backstack.push(NavTarget.ForwardEvent(eventId)) + override fun startForwardEventFlow(eventId: EventId, fromPinnedEvents: Boolean) { + backstack.push(NavTarget.ForwardEvent(eventId, fromPinnedEvents)) } } return roomDetailsEntryPoint.createNode( @@ -169,7 +172,11 @@ class JoinedRoomLoadedFlowNode( createSpaceNode(buildContext) } is NavTarget.ForwardEvent -> { - val timelineProvider = { MutableStateFlow(inputs.room.liveTimeline).asStateFlow() } + val timelineProvider = if (navTarget.fromPinnedEvents) { + (graph as TimelineBindings).pinnedEventsTimelineProvider + } else { + (graph as TimelineBindings).timelineProvider + } val params = ForwardEntryPoint.Params(navTarget.eventId, timelineProvider) val callback = object : ForwardEntryPoint.Callback { override fun onDone(roomIds: List) { @@ -228,8 +235,8 @@ class JoinedRoomLoadedFlowNode( callback.handlePermalinkClick(data, pushToBackstack) } - override fun forwardEvent(eventId: EventId) { - backstack.push(NavTarget.ForwardEvent(eventId)) + override fun forwardEvent(eventId: EventId, fromPinnedEvents: Boolean) { + backstack.push(NavTarget.ForwardEvent(eventId, fromPinnedEvents)) } override fun navigateToRoom(roomId: RoomId) { @@ -266,7 +273,7 @@ class JoinedRoomLoadedFlowNode( data class RoomMemberDetails(val userId: UserId) : NavTarget @Parcelize - data class ForwardEvent(val eventId: EventId) : NavTarget + data class ForwardEvent(val eventId: EventId, val fromPinnedEvents: Boolean) : NavTarget @Parcelize data object RoomNotificationSettings : NavTarget