Timeline UI : try to fix scrolling issues (not perfect but better)

This commit is contained in:
ganfra 2018-11-22 11:57:39 +01:00
parent bc1462486d
commit 6fc0d884b2
2 changed files with 4 additions and 4 deletions

View File

@ -6,7 +6,7 @@ import im.vector.riotredesign.core.platform.DefaultListUpdateCallback
class ScrollOnNewMessageCallback(private val layoutManager: LinearLayoutManager) : DefaultListUpdateCallback { class ScrollOnNewMessageCallback(private val layoutManager: LinearLayoutManager) : DefaultListUpdateCallback {
override fun onInserted(position: Int, count: Int) { override fun onInserted(position: Int, count: Int) {
if (layoutManager.findFirstVisibleItemPosition() == 0) { if (position == 0 && layoutManager.findFirstVisibleItemPosition() == 0) {
layoutManager.scrollToPosition(0) layoutManager.scrollToPosition(0)
} }
} }

View File

@ -16,7 +16,7 @@ import im.vector.matrix.android.internal.session.events.interceptor.MessageEvent
import io.realm.Realm import io.realm.Realm
import io.realm.RealmQuery import io.realm.RealmQuery
private const val PAGE_SIZE = 30 private const val PAGE_SIZE = 60
internal class DefaultTimelineHolder(private val roomId: String, internal class DefaultTimelineHolder(private val roomId: String,
private val monarchy: Monarchy, private val monarchy: Monarchy,
@ -26,7 +26,7 @@ internal class DefaultTimelineHolder(private val roomId: String,
private val eventInterceptors = ArrayList<EnrichedEventInterceptor>() private val eventInterceptors = ArrayList<EnrichedEventInterceptor>()
init { init {
boundaryCallback.limit = PAGE_SIZE boundaryCallback.limit = PAGE_SIZE / 2
eventInterceptors.add(MessageEventInterceptor(monarchy, roomId)) eventInterceptors.add(MessageEventInterceptor(monarchy, roomId))
} }
@ -55,7 +55,7 @@ internal class DefaultTimelineHolder(private val roomId: String,
.setEnablePlaceholders(false) .setEnablePlaceholders(false)
.setPageSize(PAGE_SIZE) .setPageSize(PAGE_SIZE)
.setInitialLoadSizeHint(PAGE_SIZE) .setInitialLoadSizeHint(PAGE_SIZE)
.setPrefetchDistance(20) .setPrefetchDistance(PAGE_SIZE / 2)
.build() .build()
val livePagedListBuilder = LivePagedListBuilder(domainSourceFactory, pagedListConfig).setBoundaryCallback(boundaryCallback) val livePagedListBuilder = LivePagedListBuilder(domainSourceFactory, pagedListConfig).setBoundaryCallback(boundaryCallback)