From ba0263791cb135c459d0f46b1b22b47a21d75faa Mon Sep 17 00:00:00 2001 From: Bnyro Date: Fri, 29 Jul 2022 08:04:51 +0200 Subject: [PATCH] fix subscriptions --- .../libretube/adapters/TrendingAdapter.kt | 18 +++++++++++++++--- .../fragments/SubscriptionsFragment.kt | 16 +++++++++++++++- .../libretube/views/CustomExoPlayerView.kt | 1 - 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/github/libretube/adapters/TrendingAdapter.kt b/app/src/main/java/com/github/libretube/adapters/TrendingAdapter.kt index 4c4b4f30e..2451acd75 100644 --- a/app/src/main/java/com/github/libretube/adapters/TrendingAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/TrendingAdapter.kt @@ -16,12 +16,24 @@ import com.github.libretube.util.setWatchProgressLength class TrendingAdapter( private val streamItems: List, - private val childFragmentManager: FragmentManager + private val childFragmentManager: FragmentManager, + private val showAllAtOne: Boolean = true ) : RecyclerView.Adapter() { - private val TAG = "SubscriptionAdapter" + private val TAG = "TrendingAdapter" + + var index = 10 override fun getItemCount(): Int { - return streamItems.size + return if (showAllAtOne) streamItems.size + else index + } + + fun updateItems() { + index += 10 + if (index > streamItems.size) { + index = streamItems.size + } + notifyDataSetChanged() } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SubscriptionViewHolder { diff --git a/app/src/main/java/com/github/libretube/fragments/SubscriptionsFragment.kt b/app/src/main/java/com/github/libretube/fragments/SubscriptionsFragment.kt index c6261cdfa..731c150c7 100644 --- a/app/src/main/java/com/github/libretube/fragments/SubscriptionsFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/SubscriptionsFragment.kt @@ -85,6 +85,20 @@ class SubscriptionsFragment : Fragment() { binding.subFeedContainer.visibility = View.VISIBLE } } + + binding.scrollviewSub.viewTreeObserver + .addOnScrollChangedListener { + if (binding.scrollviewSub.getChildAt(0).bottom + == (binding.scrollviewSub.height + binding.scrollviewSub.scrollY) + ) { + // scroll view is at bottom + if (isLoaded) { + binding.subRefresh.isRefreshing = true + subscriptionAdapter?.updateItems() + binding.subRefresh.isRefreshing = false + } + } + } } else { binding.subRefresh.isEnabled = false } @@ -106,7 +120,7 @@ class SubscriptionsFragment : Fragment() { binding.subRefresh.isRefreshing = false } if (response.isNotEmpty()) { - subscriptionAdapter = TrendingAdapter(response, childFragmentManager) + subscriptionAdapter = TrendingAdapter(response, childFragmentManager, false) feedRecView.adapter = subscriptionAdapter } else { runOnUiThread { diff --git a/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt b/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt index 8dd5de208..193609b63 100644 --- a/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt +++ b/app/src/main/java/com/github/libretube/views/CustomExoPlayerView.kt @@ -5,7 +5,6 @@ import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import android.view.View -import com.github.libretube.R import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding import com.github.libretube.util.DoubleTapListener import com.github.libretube.util.OnDoubleTapEventListener