Merge pull request #5389 from element-hq/feature/fga/timeline_fix_forward_pagination

fix (timeline) : forward pagination regression
This commit is contained in:
ganfra 2025-09-22 19:35:43 +02:00 committed by GitHub
commit fcd4d62c41
3 changed files with 2 additions and 8 deletions

View file

@ -123,7 +123,7 @@ class RustTimeline(
) )
override val forwardPaginationStatus = MutableStateFlow( override val forwardPaginationStatus = MutableStateFlow(
Timeline.PaginationStatus(isPaginating = false, hasMoreToLoad = mode !is Timeline.Mode.FocusedOnEvent) Timeline.PaginationStatus(isPaginating = false, hasMoreToLoad = mode is Timeline.Mode.FocusedOnEvent)
) )
init { init {
@ -221,7 +221,6 @@ class RustTimeline(
items = items, items = items,
hasMoreToLoadBackward = backwardPaginationStatus.hasMoreToLoad, hasMoreToLoadBackward = backwardPaginationStatus.hasMoreToLoad,
hasMoreToLoadForward = forwardPaginationStatus.hasMoreToLoad, hasMoreToLoadForward = forwardPaginationStatus.hasMoreToLoad,
timelineMode = mode,
) )
} }
.let { items -> .let { items ->

View file

@ -18,9 +18,8 @@ class LoadingIndicatorsPostProcessor(private val systemClock: SystemClock) {
items: List<MatrixTimelineItem>, items: List<MatrixTimelineItem>,
hasMoreToLoadBackward: Boolean, hasMoreToLoadBackward: Boolean,
hasMoreToLoadForward: Boolean, hasMoreToLoadForward: Boolean,
timelineMode: Timeline.Mode,
): List<MatrixTimelineItem> { ): List<MatrixTimelineItem> {
val shouldAddForwardLoadingIndicator = timelineMode is Timeline.Mode.Live && hasMoreToLoadForward && items.isNotEmpty() val shouldAddForwardLoadingIndicator = hasMoreToLoadForward && items.isNotEmpty()
val currentTimestamp = systemClock.epochMillis() val currentTimestamp = systemClock.epochMillis()
return buildList { return buildList {
if (hasMoreToLoadBackward) { if (hasMoreToLoadBackward) {

View file

@ -24,7 +24,6 @@ class LoadingIndicatorsPostProcessorTest {
items = listOf(messageEvent, messageEvent2), items = listOf(messageEvent, messageEvent2),
hasMoreToLoadBackward = true, hasMoreToLoadBackward = true,
hasMoreToLoadForward = false, hasMoreToLoadForward = false,
timelineMode = Timeline.Mode.Live,
) )
assertThat(result).containsExactly( assertThat(result).containsExactly(
MatrixTimelineItem.Virtual( MatrixTimelineItem.Virtual(
@ -47,7 +46,6 @@ class LoadingIndicatorsPostProcessorTest {
items = listOf(messageEvent, messageEvent2), items = listOf(messageEvent, messageEvent2),
hasMoreToLoadBackward = false, hasMoreToLoadBackward = false,
hasMoreToLoadForward = true, hasMoreToLoadForward = true,
timelineMode = Timeline.Mode.Live,
) )
assertThat(result).containsExactly( assertThat(result).containsExactly(
messageEvent, messageEvent,
@ -70,7 +68,6 @@ class LoadingIndicatorsPostProcessorTest {
items = listOf(messageEvent, messageEvent2), items = listOf(messageEvent, messageEvent2),
hasMoreToLoadBackward = true, hasMoreToLoadBackward = true,
hasMoreToLoadForward = true, hasMoreToLoadForward = true,
timelineMode = Timeline.Mode.Live,
) )
assertThat(result).containsExactly( assertThat(result).containsExactly(
MatrixTimelineItem.Virtual( MatrixTimelineItem.Virtual(
@ -100,7 +97,6 @@ class LoadingIndicatorsPostProcessorTest {
items = listOf(), items = listOf(),
hasMoreToLoadBackward = true, hasMoreToLoadBackward = true,
hasMoreToLoadForward = true, hasMoreToLoadForward = true,
timelineMode = Timeline.Mode.Live,
) )
assertThat(result).containsExactly( assertThat(result).containsExactly(
MatrixTimelineItem.Virtual( MatrixTimelineItem.Virtual(