From 3003bd2527713dd4b7cb97147f18417bdcbe847d Mon Sep 17 00:00:00 2001 From: jhengazuji Date: Fri, 7 Nov 2025 18:21:56 +0800 Subject: [PATCH] Fix check more bug --- .../com/fongmi/android/tv/ui/fragment/TypeFragment.java | 6 +++--- .../com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java | 6 +++++- .../com/fongmi/android/tv/ui/fragment/TypeFragment.java | 7 +++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java index c571a670b..377a8b714 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java @@ -176,17 +176,17 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac mBinding.swipeLayout.setRefreshing(false); if (size > 0) addVideo(result); mScroller.endLoading(result); - checkMore(size); } private void addVideo(Result result) { Style style = result.getStyle(getStyle()); if (style.isList()) mAdapter.addAll(mAdapter.size(), result.getList()); else addGrid(result.getList(), style); + checkMore(); } - private void checkMore(int count) { - if (mScroller.isDisable() || count == 0 || mAdapter.size() >= 5) return; + private void checkMore() { + if (mScroller.isDisable() || mAdapter.size() >= 5) return; getVideo(getTypeId(), String.valueOf(mScroller.addPage())); } diff --git a/app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java b/app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java index 90459dddc..2a848d728 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java @@ -66,9 +66,13 @@ public abstract class BaseDiffAdapter, VH extends Recycler } public void addAll(List items) { + addAll(items, null); + } + + public void addAll(List items, Runnable runnable) { List current = new ArrayList<>(getItems()); current.addAll(items); - setItems(current); + setItems(current, runnable); } public void sort(T item, Comparator comparator) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java index 71b9c54f2..4080caa5b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java @@ -156,17 +156,16 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac mBinding.swipeLayout.setRefreshing(false); if (size > 0) addVideo(result); mScroller.endLoading(result); - checkMore(size); } private void addVideo(Result result) { Style style = result.getList().get(0).getStyle(getStyle()); if (!style.equals(mAdapter.getStyle())) setStyle(style); - mAdapter.addAll(result.getList()); + mAdapter.addAll(result.getList(), this::checkMore); } - private void checkMore(int count) { - if (!isVisible() || mScroller.isDisable() || count == 0 || mBinding.recycler.canScrollVertically(1) || mBinding.recycler.getScrollState() > 0 || isHome()) return; + private void checkMore() { + if (isHidden() || mScroller.isDisable() || mBinding.recycler.canScrollVertically(1) || mBinding.recycler.getScrollState() != 0 || isHome()) return; getVideo(getTypeId(), String.valueOf(mScroller.addPage())); }