From d58e9bb944072dfa712a937eee77e634e576bf18 Mon Sep 17 00:00:00 2001 From: SpiritCroc Date: Mon, 21 Mar 2022 15:21:47 +0100 Subject: [PATCH] Fix readmarker index calculcation if local echos exist Change-Id: Ia1f0cfb719c2497d4aa840964432e7d39b299d40 --- .../internal/session/room/timeline/LoadTimelineStrategy.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt index aa4f2d5a3b..4526756ce5 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/timeline/LoadTimelineStrategy.kt @@ -90,6 +90,7 @@ internal class LoadTimelineStrategy( private var getContextLatch: CompletableDeferred? = null private var chunkEntity: RealmResults? = null private var timelineChunk: TimelineChunk? = null + private var sendingEventCount: Int = 0 private val chunkEntityListener = OrderedRealmCollectionChangeListener { _: RealmResults, changeSet: OrderedCollectionChangeSet -> // Can be call either when you open a permalink on an unknown event @@ -189,7 +190,7 @@ internal class LoadTimelineStrategy( } fun getBuiltEventIndex(eventId: String): Int? { - return timelineChunk?.getBuiltEventIndex(eventId, searchInNext = true, searchInPrev = true) + return timelineChunk?.getBuiltEventIndex(eventId, searchInNext = true, searchInPrev = true)?.let { it + sendingEventCount } } fun getBuiltEvent(eventId: String): TimelineEvent? { @@ -205,6 +206,8 @@ internal class LoadTimelineStrategy( sendingEventsDataSource.buildSendingEvents() } else { emptyList() + }.also { + sendingEventCount = it.size } }