diff --git a/app/src/main/java/org/futo/circles/feature/timeline/list/TimelineAdapter.kt b/app/src/main/java/org/futo/circles/feature/timeline/list/TimelineAdapter.kt index 10e4bc942918402032c170e78c92a3e9bcef3299..5d6f5407f5bf9c95ab97ee7b6cfbc14660e57092 100644 --- a/app/src/main/java/org/futo/circles/feature/timeline/list/TimelineAdapter.kt +++ b/app/src/main/java/org/futo/circles/feature/timeline/list/TimelineAdapter.kt @@ -1,10 +1,9 @@ package org.futo.circles.feature.timeline.list import android.annotation.SuppressLint -import android.content.Context import android.view.ViewGroup import org.futo.circles.core.base.list.BaseRvAdapter -import org.futo.circles.core.feature.markdown.MarkdownParser +import org.futo.circles.core.feature.timeline.data_source.BaseTimelineDataSource import org.futo.circles.core.model.Post import org.futo.circles.core.model.PostContentType import org.futo.circles.model.PostItemPayload @@ -47,7 +46,7 @@ class TimelineAdapter( override fun onBindViewHolder(holder: PostViewHolder, position: Int) { holder.bind(getItem(position), userPowerLevel) - if (position >= itemCount - LOAD_MORE_THRESHOLD) onLoadMore() + if (position >= itemCount - BaseTimelineDataSource.LOAD_MORE_THRESHOLD) onLoadMore() } override fun onBindViewHolder( @@ -71,8 +70,4 @@ class TimelineAdapter( (holder as? UploadMediaViewHolder)?.uploadMediaTracker?.unTrack() } - companion object { - private const val LOAD_MORE_THRESHOLD = 15 - } - } \ No newline at end of file diff --git a/core/src/main/java/org/futo/circles/core/feature/timeline/data_source/BaseTimelineDataSource.kt b/core/src/main/java/org/futo/circles/core/feature/timeline/data_source/BaseTimelineDataSource.kt index 490612ebb47214b8364694ce71e8f577c8167638..0cceea12806916a6ccc0be4a95af5b7d4e65cd80 100644 --- a/core/src/main/java/org/futo/circles/core/feature/timeline/data_source/BaseTimelineDataSource.kt +++ b/core/src/main/java/org/futo/circles/core/feature/timeline/data_source/BaseTimelineDataSource.kt @@ -59,7 +59,7 @@ abstract class BaseTimelineDataSource( }.flowOn(Dispatchers.IO) .mapLatest { val items = timelineBuilder.build(it, isThread) - if (it.isNotEmpty() && items.isEmpty()) loadMore() + if (it.isNotEmpty() && items.size <= LOAD_MORE_THRESHOLD) loadMore() items } .distinctUntilChanged() @@ -94,5 +94,6 @@ abstract class BaseTimelineDataSource( companion object { private const val MESSAGES_PER_PAGE = 50 + const val LOAD_MORE_THRESHOLD = 15 } } \ No newline at end of file