From 02254d5d31a1684317b0f227596a7a1d964300fe Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 11 Jan 2019 15:17:15 +0100 Subject: [PATCH] Timeline : re-add hasReachedEnd condition to get a better display --- .../detail/timeline/TimelineEventController.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/TimelineEventController.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/TimelineEventController.kt index 0cd38e50..8f5d70cb 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/TimelineEventController.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/timeline/TimelineEventController.kt @@ -23,14 +23,18 @@ class TimelineEventController(private val roomId: String, private var isLoadingForward: Boolean = false private var isLoadingBackward: Boolean = false + private var hasReachedEnd: Boolean = false var callback: Callback? = null fun update(timelineData: TimelineData?) { - isLoadingForward = timelineData?.isLoadingForward ?: false - isLoadingBackward = timelineData?.isLoadingBackward ?: false - submitList(timelineData?.events) - requestModelBuild() + timelineData?.let { + isLoadingForward = it.isLoadingForward + isLoadingBackward = it.isLoadingBackward + hasReachedEnd = it.events.lastOrNull()?.root?.type == EventType.STATE_ROOM_CREATE + submitList(it.events) + requestModelBuild() + } } @@ -48,7 +52,7 @@ class TimelineEventController(private val roomId: String, val item = when (event.root.type) { EventType.MESSAGE -> messageItemFactory.create(event, nextEvent, addDaySeparator, date, callback) - else -> textItemFactory.create(event) + else -> textItemFactory.create(event) } item?.also { it.id(event.localId) @@ -72,7 +76,7 @@ class TimelineEventController(private val roomId: String, LoadingItemModel_() .id(roomId + "backward_loading_item") - .addIf(isLoadingBackward, this) + .addIf(!hasReachedEnd, this) }