diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/list/ThreadsListPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/list/ThreadsListPresenter.kt index 21946510d4..07c0838a2b 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/list/ThreadsListPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/list/ThreadsListPresenter.kt @@ -101,9 +101,10 @@ class ThreadsListPresenter( coroutineScope.launch { Timber.d("Paginating thread list: $paginationStatus") threadsListService.paginate() + .onFailure { Timber.w(it, "Failed to paginate thread list") } } } else { - Timber.d("Not paginating since there is nothing else to load, current status: $paginationStatus") + Timber.d("Not paginating, current status: $paginationStatus") } } } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/list/ThreadsListView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/list/ThreadsListView.kt index 7d741eb3ea..5494a9e844 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/list/ThreadsListView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/threads/list/ThreadsListView.kt @@ -162,14 +162,14 @@ private fun ScrollHelper( val lastVisibleItemIndex by remember { derivedStateOf { listState.firstVisibleItemIndex + listState.layoutInfo.visibleItemsInfo.size - 1 } } - val needsPagination by remember { + val shouldPaginate by remember { derivedStateOf { - val canLoadNewItems = listState.isScrollInProgress || listState.firstVisibleItemScrollOffset == 0 - canLoadNewItems && lastVisibleItemIndex == listState.layoutInfo.totalItemsCount - 1 + val canLoadNewItems = listState.isScrollInProgress || listState.layoutInfo.totalItemsCount == 0 + canLoadNewItems && lastVisibleItemIndex >= listState.layoutInfo.totalItemsCount - 1 } } - LaunchedEffect(needsPagination, lastVisibleItemIndex) { - if (needsPagination) { + LaunchedEffect(shouldPaginate, lastVisibleItemIndex) { + if (shouldPaginate) { updatedOnPaginate() delay(400L) }