From ff61a46e943c25570823f131a3f2f3aa28b93fac Mon Sep 17 00:00:00 2001 From: ganfra Date: Thu, 24 Nov 2022 10:39:31 +0100 Subject: [PATCH] RoomList: extend a bit the range of SS window --- .../android/x/features/roomlist/RoomListViewModel.kt | 9 ++++++++- .../java/io/element/android/x/matrix/MatrixClient.kt | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListViewModel.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListViewModel.kt index e8d50887c4..aae69e5497 100644 --- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListViewModel.kt +++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListViewModel.kt @@ -20,6 +20,8 @@ import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch +private const val extendedRangeSize = 40 + class RoomListViewModel( private val client: MatrixClient, initialState: RoomListViewState @@ -69,7 +71,12 @@ class RoomListViewModel( fun updateVisibleRange(range: IntRange) { viewModelScope.launch { if (range.isEmpty()) return@launch - client.roomSummaryDataSource().setSlidingSyncRange(range) + val midExtendedRangeSize = extendedRangeSize / 2 + val extendedRangeStart = (range.first - midExtendedRangeSize).coerceAtLeast(0) + // Safe to give bigger size than room list + val extendedRangeEnd = range.last + midExtendedRangeSize + val extendedRange = IntRange(extendedRangeStart, extendedRangeEnd) + client.roomSummaryDataSource().setSlidingSyncRange(extendedRange) } } diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixClient.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixClient.kt index 24b7793721..2ac426a03d 100644 --- a/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixClient.kt +++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixClient.kt @@ -49,7 +49,7 @@ class MatrixClient internal constructor( ) .name(name = "HomeScreenView") .syncMode(mode = SlidingSyncMode.SELECTIVE) - .addRange(0u, 10u) + .addRange(0u, 30u) .build() private val slidingSync = client