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

Automatically reload messages on reconnect

parent 557b054b
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -40,9 +40,12 @@ import com.bumptech.glide.Glide ...@@ -40,9 +40,12 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.ListPreloader import com.bumptech.glide.ListPreloader
import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader
import com.bumptech.glide.util.FixedPreloadSizeProvider import com.bumptech.glide.util.FixedPreloadSizeProvider
import de.kuschku.libquassel.connection.ConnectionState
import de.kuschku.libquassel.protocol.BufferId import de.kuschku.libquassel.protocol.BufferId
import de.kuschku.libquassel.protocol.MsgId import de.kuschku.libquassel.protocol.MsgId
import de.kuschku.libquassel.quassel.syncables.BufferSyncer import de.kuschku.libquassel.quassel.syncables.BufferSyncer
import de.kuschku.libquassel.session.SessionManager
import de.kuschku.libquassel.util.helpers.mapSwitchMap
import de.kuschku.libquassel.util.helpers.value import de.kuschku.libquassel.util.helpers.value
import de.kuschku.libquassel.util.irc.HostmaskHelper import de.kuschku.libquassel.util.irc.HostmaskHelper
import de.kuschku.quasseldroid.GlideApp import de.kuschku.quasseldroid.GlideApp
...@@ -246,8 +249,7 @@ class MessageListFragment : ServiceBoundFragment() { ...@@ -246,8 +249,7 @@ class MessageListFragment : ServiceBoundFragment() {
} }
var isScrolling = false var isScrolling = false
messageList.addOnScrollListener( messageList.addOnScrollListener(object : RecyclerView.OnScrollListener() {
object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
val canScrollDown = recyclerView.canScrollVertically(1) val canScrollDown = recyclerView.canScrollVertically(1)
val isScrollingDown = dy > 0 val isScrollingDown = dy > 0
...@@ -314,6 +316,15 @@ class MessageListFragment : ServiceBoundFragment() { ...@@ -314,6 +316,15 @@ class MessageListFragment : ServiceBoundFragment() {
swipeRefreshLayout.isEnabled = (bufferId != null || bufferId != -1) swipeRefreshLayout.isEnabled = (bufferId != null || bufferId != -1)
}) })
viewModel.sessionManager.mapSwitchMap(SessionManager::state).distinctUntilChanged().toLiveData().observe(
this, Observer {
if (it?.orNull() == ConnectionState.CONNECTED) {
runInBackgroundDelayed(16) {
loadMore()
}
}
})
var previousVisible = -1L var previousVisible = -1L
viewModel.buffer.toFlowable(BackpressureStrategy.LATEST).switchMap { buffer -> viewModel.buffer.toFlowable(BackpressureStrategy.LATEST).switchMap { buffer ->
database.filtered().listenRx(accountId, buffer).switchMap { filtered -> database.filtered().listenRx(accountId, buffer).switchMap { filtered ->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment