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

Load enough backlog to fill the screen after reconnect, fixes #64

parent 80e88a7b
No related branches found
No related tags found
No related merge requests found
......@@ -321,7 +321,7 @@ class MessageListFragment : ServiceBoundFragment() {
this, Observer {
if (it?.orNull() == ConnectionState.CONNECTED) {
runInBackgroundDelayed(16) {
loadMore()
loadMore(initial = true)
}
}
})
......@@ -457,8 +457,10 @@ class MessageListFragment : ServiceBoundFragment() {
}
// Try loading messages when switching to isEmpty buffer
if (database.message().bufferSize(current) == 0) {
if (current > 0 && current != Int.MAX_VALUE) {
loadMore(initial = true)
}
}
activity?.runOnUiThread { messageList.scrollToPosition(0) }
}
......@@ -474,8 +476,11 @@ class MessageListFragment : ServiceBoundFragment() {
}
private fun loadMore(initial: Boolean = false, lastMessageId: MsgId? = null) {
runInBackground {
requireActivity().runOnUiThread {
viewModel.buffer { bufferId ->
if (bufferId > 0 && bufferId != Int.MAX_VALUE) {
if (initial) swipeRefreshLayout.isRefreshing = true
runInBackground {
viewModel.session {
it.orNull()?.backlogManager?.requestBacklog(
bufferId = bufferId,
......@@ -488,6 +493,8 @@ class MessageListFragment : ServiceBoundFragment() {
}
}
}
}
}
companion object {
private const val KEY_STATE_LIST = "KEY_STATE_LIST"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment