PinnedMessagesListEvents -> PinnedMessagesListEvent

This commit is contained in:
Benoit Marty 2026-01-27 10:00:02 +01:00
parent f237b31db9
commit e2f281b248
7 changed files with 15 additions and 15 deletions

View file

@ -11,6 +11,6 @@ package io.element.android.features.messages.impl.pinned.list
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.features.messages.impl.timeline.model.TimelineItem
sealed interface PinnedMessagesListEvents { sealed interface PinnedMessagesListEvent {
data class HandleAction(val action: TimelineItemAction, val event: TimelineItem.Event) : PinnedMessagesListEvents data class HandleAction(val action: TimelineItemAction, val event: TimelineItem.Event) : PinnedMessagesListEvent
} }

View file

@ -134,9 +134,9 @@ class PinnedMessagesListPresenter(
} }
) )
fun handleEvent(event: PinnedMessagesListEvents) { fun handleEvent(event: PinnedMessagesListEvent) {
when (event) { when (event) {
is PinnedMessagesListEvents.HandleAction -> sessionCoroutineScope.handleTimelineAction(event.action, event.event) is PinnedMessagesListEvent.HandleAction -> sessionCoroutineScope.handleTimelineAction(event.action, event.event)
} }
} }
@ -232,7 +232,7 @@ class PinnedMessagesListPresenter(
linkState: LinkState, linkState: LinkState,
userEventPermissions: UserEventPermissions, userEventPermissions: UserEventPermissions,
timelineItems: AsyncData<ImmutableList<TimelineItem>>, timelineItems: AsyncData<ImmutableList<TimelineItem>>,
eventSink: (PinnedMessagesListEvents) -> Unit eventSink: (PinnedMessagesListEvent) -> Unit
): PinnedMessagesListState { ): PinnedMessagesListState {
return when (timelineItems) { return when (timelineItems) {
AsyncData.Uninitialized, is AsyncData.Loading -> PinnedMessagesListState.Loading AsyncData.Uninitialized, is AsyncData.Loading -> PinnedMessagesListState.Loading

View file

@ -35,7 +35,7 @@ sealed interface PinnedMessagesListState {
val actionListState: ActionListState, val actionListState: ActionListState,
val linkState: LinkState, val linkState: LinkState,
val displayThreadSummaries: Boolean, val displayThreadSummaries: Boolean,
val eventSink: (PinnedMessagesListEvents) -> Unit, val eventSink: (PinnedMessagesListEvent) -> Unit,
) : PinnedMessagesListState { ) : PinnedMessagesListState {
val loadedPinnedMessagesCount = timelineItems.count { timelineItem -> timelineItem is TimelineItem.Event } val loadedPinnedMessagesCount = timelineItems.count { timelineItem -> timelineItem is TimelineItem.Event }
} }

View file

@ -94,7 +94,7 @@ fun aLoadedPinnedMessagesListState(
actionListState: ActionListState = anActionListState(), actionListState: ActionListState = anActionListState(),
aUserEventPermissions: UserEventPermissions = UserEventPermissions.DEFAULT, aUserEventPermissions: UserEventPermissions = UserEventPermissions.DEFAULT,
displayThreadSummaries: Boolean = false, displayThreadSummaries: Boolean = false,
eventSink: (PinnedMessagesListEvents) -> Unit = {} eventSink: (PinnedMessagesListEvent) -> Unit = {}
) = PinnedMessagesListState.Filled( ) = PinnedMessagesListState.Filled(
timelineRoomInfo = timelineRoomInfo, timelineRoomInfo = timelineRoomInfo,
timelineProtectionState = timelineProtectionState, timelineProtectionState = timelineProtectionState,

View file

@ -178,7 +178,7 @@ private fun PinnedMessagesListLoaded(
ActionListEvent.Clear ActionListEvent.Clear
) )
state.eventSink( state.eventSink(
PinnedMessagesListEvents.HandleAction( PinnedMessagesListEvent.HandleAction(
action = timelineItemAction, action = timelineItemAction,
event = event, event = event,
) )

View file

@ -152,11 +152,11 @@ class PinnedMessagesListPresenterTest {
val eventItem = filledState.timelineItems.first() as TimelineItem.Event val eventItem = filledState.timelineItems.first() as TimelineItem.Event
pinnedEventsTimeline.unpinEventLambda = successUnpinEventLambda pinnedEventsTimeline.unpinEventLambda = successUnpinEventLambda
filledState.eventSink(PinnedMessagesListEvents.HandleAction(TimelineItemAction.Unpin, eventItem)) filledState.eventSink(PinnedMessagesListEvent.HandleAction(TimelineItemAction.Unpin, eventItem))
advanceUntilIdle() advanceUntilIdle()
pinnedEventsTimeline.unpinEventLambda = failureUnpinEventLambda pinnedEventsTimeline.unpinEventLambda = failureUnpinEventLambda
filledState.eventSink(PinnedMessagesListEvents.HandleAction(TimelineItemAction.Unpin, eventItem)) filledState.eventSink(PinnedMessagesListEvent.HandleAction(TimelineItemAction.Unpin, eventItem))
advanceUntilIdle() advanceUntilIdle()
cancelAndIgnoreRemainingEvents() cancelAndIgnoreRemainingEvents()
@ -196,7 +196,7 @@ class PinnedMessagesListPresenterTest {
skipItems(3) skipItems(3)
val filledState = awaitItem() as PinnedMessagesListState.Filled val filledState = awaitItem() as PinnedMessagesListState.Filled
val eventItem = filledState.timelineItems.first() as TimelineItem.Event val eventItem = filledState.timelineItems.first() as TimelineItem.Event
filledState.eventSink(PinnedMessagesListEvents.HandleAction(TimelineItemAction.ViewInTimeline, eventItem)) filledState.eventSink(PinnedMessagesListEvent.HandleAction(TimelineItemAction.ViewInTimeline, eventItem))
advanceUntilIdle() advanceUntilIdle()
cancelAndIgnoreRemainingEvents() cancelAndIgnoreRemainingEvents()
assert(onViewInTimelineClickLambda) assert(onViewInTimelineClickLambda)
@ -225,7 +225,7 @@ class PinnedMessagesListPresenterTest {
skipItems(3) skipItems(3)
val filledState = awaitItem() as PinnedMessagesListState.Filled val filledState = awaitItem() as PinnedMessagesListState.Filled
val eventItem = filledState.timelineItems.first() as TimelineItem.Event val eventItem = filledState.timelineItems.first() as TimelineItem.Event
filledState.eventSink(PinnedMessagesListEvents.HandleAction(TimelineItemAction.ViewSource, eventItem)) filledState.eventSink(PinnedMessagesListEvent.HandleAction(TimelineItemAction.ViewSource, eventItem))
advanceUntilIdle() advanceUntilIdle()
cancelAndIgnoreRemainingEvents() cancelAndIgnoreRemainingEvents()
assert(onShowEventDebugInfoClickLambda) assert(onShowEventDebugInfoClickLambda)
@ -254,7 +254,7 @@ class PinnedMessagesListPresenterTest {
skipItems(3) skipItems(3)
val filledState = awaitItem() as PinnedMessagesListState.Filled val filledState = awaitItem() as PinnedMessagesListState.Filled
val eventItem = filledState.timelineItems.first() as TimelineItem.Event val eventItem = filledState.timelineItems.first() as TimelineItem.Event
filledState.eventSink(PinnedMessagesListEvents.HandleAction(TimelineItemAction.Forward, eventItem)) filledState.eventSink(PinnedMessagesListEvent.HandleAction(TimelineItemAction.Forward, eventItem))
advanceUntilIdle() advanceUntilIdle()
cancelAndIgnoreRemainingEvents() cancelAndIgnoreRemainingEvents()
assert(onForwardEventClickLambda) assert(onForwardEventClickLambda)

View file

@ -43,7 +43,7 @@ class PinnedMessagesListViewTest {
@Test @Test
fun `clicking on back calls the expected callback`() { fun `clicking on back calls the expected callback`() {
val eventsRecorder = EventsRecorder<PinnedMessagesListEvents>(expectEvents = false) val eventsRecorder = EventsRecorder<PinnedMessagesListEvent>(expectEvents = false)
val state = aLoadedPinnedMessagesListState( val state = aLoadedPinnedMessagesListState(
eventSink = eventsRecorder eventSink = eventsRecorder
) )
@ -58,7 +58,7 @@ class PinnedMessagesListViewTest {
@Test @Test
fun `click on an event calls the expected callback`() { fun `click on an event calls the expected callback`() {
val eventsRecorder = EventsRecorder<PinnedMessagesListEvents>(expectEvents = false) val eventsRecorder = EventsRecorder<PinnedMessagesListEvent>(expectEvents = false)
val content = aTimelineItemFileContent() val content = aTimelineItemFileContent()
val state = aLoadedPinnedMessagesListState( val state = aLoadedPinnedMessagesListState(
timelineItems = aTimelineItemList(content), timelineItems = aTimelineItemList(content),