Fix check more bug

pull/605/head
jhengazuji 5 months ago
parent e934c0ee8d
commit 3003bd2527
  1. 6
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java
  2. 6
      app/src/main/java/com/fongmi/android/tv/ui/adapter/BaseDiffAdapter.java
  3. 7
      app/src/mobile/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()));
}

@ -66,9 +66,13 @@ public abstract class BaseDiffAdapter<T extends Diffable<T>, VH extends Recycler
}
public void addAll(List<T> items) {
addAll(items, null);
}
public void addAll(List<T> items, Runnable runnable) {
List<T> current = new ArrayList<>(getItems());
current.addAll(items);
setItems(current);
setItems(current, runnable);
}
public void sort(T item, Comparator<T> comparator) {

@ -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()));
}

Loading…
Cancel
Save