mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
PinnedMessagesListEvents -> PinnedMessagesListEvent
This commit is contained in:
+2
-2
@@ -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
|
||||||
}
|
}
|
||||||
+3
-3
@@ -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
|
||||||
|
|||||||
+1
-1
@@ -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 }
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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,
|
||||||
|
|||||||
+1
-1
@@ -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,
|
||||||
)
|
)
|
||||||
|
|||||||
+5
-5
@@ -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)
|
||||||
|
|||||||
+2
-2
@@ -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),
|
||||||
|
|||||||
Reference in New Issue
Block a user