From 6fc0d884b2ae273ce6aae6ed5e7fe7e0f9e24434 Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 22 Nov 2018 11:57:39 +0100 Subject: [PATCH] Timeline UI : try to fix scrolling issues (not perfect but better) --- .../features/home/room/detail/ScrollOnNewMessageCallback.kt | 2 +- .../internal/session/room/timeline/DefaultTimelineHolder.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/ScrollOnNewMessageCallback.kt b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/ScrollOnNewMessageCallback.kt index 3328d8b4..38b4570f 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/room/detail/ScrollOnNewMessageCallback.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/room/detail/ScrollOnNewMessageCallback.kt @@ -6,7 +6,7 @@ import im.vector.riotredesign.core.platform.DefaultListUpdateCallback class ScrollOnNewMessageCallback(private val layoutManager: LinearLayoutManager) : DefaultListUpdateCallback { override fun onInserted(position: Int, count: Int) { - if (layoutManager.findFirstVisibleItemPosition() == 0) { + if (position == 0 && layoutManager.findFirstVisibleItemPosition() == 0) { layoutManager.scrollToPosition(0) } } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/DefaultTimelineHolder.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/DefaultTimelineHolder.kt index ca7299db..e14869e4 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/DefaultTimelineHolder.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/room/timeline/DefaultTimelineHolder.kt @@ -16,7 +16,7 @@ import im.vector.matrix.android.internal.session.events.interceptor.MessageEvent import io.realm.Realm import io.realm.RealmQuery -private const val PAGE_SIZE = 30 +private const val PAGE_SIZE = 60 internal class DefaultTimelineHolder(private val roomId: String, private val monarchy: Monarchy, @@ -26,7 +26,7 @@ internal class DefaultTimelineHolder(private val roomId: String, private val eventInterceptors = ArrayList() init { - boundaryCallback.limit = PAGE_SIZE + boundaryCallback.limit = PAGE_SIZE / 2 eventInterceptors.add(MessageEventInterceptor(monarchy, roomId)) } @@ -55,7 +55,7 @@ internal class DefaultTimelineHolder(private val roomId: String, .setEnablePlaceholders(false) .setPageSize(PAGE_SIZE) .setInitialLoadSizeHint(PAGE_SIZE) - .setPrefetchDistance(20) + .setPrefetchDistance(PAGE_SIZE / 2) .build() val livePagedListBuilder = LivePagedListBuilder(domainSourceFactory, pagedListConfig).setBoundaryCallback(boundaryCallback)