From b83ac8f861e92dd530b4f0eeb3f7921f6a3688d1 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Sun, 3 Jun 2018 14:35:41 +0200 Subject: [PATCH] Fixes #112 --- .../quasseldroid/ui/chat/messages/MessageListFragment.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt index 465453b10..b6164d4d2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageListFragment.kt @@ -299,6 +299,7 @@ class MessageListFragment : ServiceBoundFragment() { } } + var previousLoadKey: Int? = null val data = combineLatest(viewModel.buffer, viewModel.selectedMessages, viewModel.expandedMessages, @@ -315,7 +316,11 @@ class MessageListFragment : ServiceBoundFragment() { .setInitialLoadSizeHint(backlogSettings.pageSize) .setEnablePlaceholders(true) .build() - ).setBoundaryCallback(boundaryCallback).build() + ).setBoundaryCallback(boundaryCallback) + .letIf(lastBuffer == buffer) { + it.setInitialLoadKey(previousLoadKey) + } + .build() } } @@ -371,6 +376,7 @@ class MessageListFragment : ServiceBoundFragment() { var lastBuffer = -1 data.observe(this, Observer { list -> + previousLoadKey = list?.lastKey as? Int val firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition() val firstVisibleMessageId = adapter[firstVisibleItemPosition]?.content?.messageId runInBackground { -- GitLab