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() { ...@@ -321,7 +321,7 @@ class MessageListFragment : ServiceBoundFragment() {
this, Observer { this, Observer {
if (it?.orNull() == ConnectionState.CONNECTED) { if (it?.orNull() == ConnectionState.CONNECTED) {
runInBackgroundDelayed(16) { runInBackgroundDelayed(16) {
loadMore() loadMore(initial = true)
} }
} }
}) })
...@@ -457,8 +457,10 @@ class MessageListFragment : ServiceBoundFragment() { ...@@ -457,8 +457,10 @@ class MessageListFragment : ServiceBoundFragment() {
} }
// Try loading messages when switching to isEmpty buffer // Try loading messages when switching to isEmpty buffer
if (database.message().bufferSize(current) == 0) { if (database.message().bufferSize(current) == 0) {
if (current > 0 && current != Int.MAX_VALUE) {
loadMore(initial = true) loadMore(initial = true)
} }
}
activity?.runOnUiThread { messageList.scrollToPosition(0) } activity?.runOnUiThread { messageList.scrollToPosition(0) }
} }
...@@ -474,8 +476,11 @@ class MessageListFragment : ServiceBoundFragment() { ...@@ -474,8 +476,11 @@ class MessageListFragment : ServiceBoundFragment() {
} }
private fun loadMore(initial: Boolean = false, lastMessageId: MsgId? = null) { private fun loadMore(initial: Boolean = false, lastMessageId: MsgId? = null) {
runInBackground { requireActivity().runOnUiThread {
viewModel.buffer { bufferId -> viewModel.buffer { bufferId ->
if (bufferId > 0 && bufferId != Int.MAX_VALUE) {
if (initial) swipeRefreshLayout.isRefreshing = true
runInBackground {
viewModel.session { viewModel.session {
it.orNull()?.backlogManager?.requestBacklog( it.orNull()?.backlogManager?.requestBacklog(
bufferId = bufferId, bufferId = bufferId,
...@@ -488,6 +493,8 @@ class MessageListFragment : ServiceBoundFragment() { ...@@ -488,6 +493,8 @@ class MessageListFragment : ServiceBoundFragment() {
} }
} }
} }
}
}
companion object { companion object {
private const val KEY_STATE_LIST = "KEY_STATE_LIST" 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