Skip to content
Snippets Groups Projects
Verified Commit 22caba2b authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Attempt at fixing #64

parent 932604ea
No related branches found
No related tags found
No related merge requests found
......@@ -32,7 +32,7 @@ class BacklogRequester(
) {
fun loadMore(accountId: Long, buffer: BufferId, amount: Int, pageSize: Int,
lastMessageId: MsgId? = null,
untilVisible: Boolean = false,
untilAllVisible: Boolean = false,
finishCallback: () -> Unit) {
var missing = amount
viewModel.session.value?.orNull()?.backlogManager?.let {
......@@ -43,14 +43,22 @@ class BacklogRequester(
)?.messageId ?: -1,
limit = amount
) {
if (untilVisible && it.isNotEmpty()) {
if (it.isNotEmpty()) {
val filtered = database.filtered().get(accountId, buffer) ?: 0
missing -= it.count {
(it.type.value and filtered.inv()) != 0
}
val hasLoadedAll = missing == 0
val hasLoadedAny = missing < amount
if (untilAllVisible && !hasLoadedAll || !untilAllVisible && !hasLoadedAny) {
val messageId = it.map(Message::messageId).min()
if (missing > 0) {
loadMore(accountId, buffer, missing, pageSize, messageId, untilVisible, finishCallback)
loadMore(accountId,
buffer,
missing,
pageSize,
messageId,
untilAllVisible,
finishCallback)
} else {
finishCallback()
}
......
......@@ -470,7 +470,7 @@ class MessageListFragment : ServiceBoundFragment() {
pageSize = backlogSettings.pageSize,
lastMessageId = lastMessageId
?: database.message().findFirstByBufferId(bufferId)?.messageId ?: -1,
untilVisible = initial
untilAllVisible = initial
) {
activity?.runOnUiThread {
swipeRefreshLayout.isRefreshing = false
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment