From f06b33dc6b3904d2f35c9472ec4718211d05f0b8 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 15 Aug 2023 22:14:38 +0800 Subject: [PATCH] Fix bug --- .../android/tv/ui/fragment/VodFragment.java | 23 ++++++++++--------- .../android/tv/ui/fragment/TypeFragment.java | 22 +++++++++--------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index 7d3051138..695b14ad3 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -22,6 +22,7 @@ import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.bean.Filter; import com.fongmi.android.tv.bean.Page; +import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Site; import com.fongmi.android.tv.bean.Vod; import com.fongmi.android.tv.databinding.FragmentVodBinding; @@ -127,11 +128,12 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback private void setViewModel() { mViewModel = new ViewModelProvider(this).get(SiteViewModel.class); mViewModel.result.observe(getViewLifecycleOwner(), result -> { + boolean first = mScroller.first(); int size = result.getList().size(); + if (size > 0) addVideo(result); mScroller.endLoading(result); - addVideo(result.getList()); - checkPosition(); - checkPage(size); + checkPosition(first); + checkMore(size); hideProgress(); }); } @@ -158,22 +160,21 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback mViewModel.categoryContent(getKey(), typeId, page, true, mExtends); } - private void addVideo(List items) { - if (items.isEmpty()) return; - Vod.Style style = items.get(0).getStyle(getStyle()); - if (style.isList()) mAdapter.addAll(mAdapter.size(), items); - else addGrid(items, style); + private void addVideo(Result result) { + Vod.Style style = result.getList().get(0).getStyle(getStyle()); + if (style.isList()) mAdapter.addAll(mAdapter.size(), result.getList()); + else addGrid(result.getList(), style); } - private void checkPosition() { + private void checkPosition(boolean first) { if (mPage != null && mPage.getPosition() > 0) mBinding.recycler.hideHeader(); if (mPage != null && mPage.getPosition() < 1) mBinding.recycler.showHeader(); if (mPage != null) mBinding.recycler.setSelectedPosition(mPage.getPosition()); - else if (mScroller.first() && !mOpen) mBinding.recycler.moveToTop(); + else if (first && !mOpen) mBinding.recycler.moveToTop(); mPage = null; } - private void checkPage(int count) { + private void checkMore(int count) { if (mScroller.isDisable() || count == 0 || mAdapter.size() >= 5) return; getVideo(getTypeId(), String.valueOf(mScroller.addPage())); } 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 e03e6dc22..9777d6cdb 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 @@ -137,29 +137,29 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac } private void setAdapter(Result result) { + boolean first = mScroller.first(); int size = result.getList().size(); - mBinding.progressLayout.showContent(mScroller.first(), size); + mBinding.progressLayout.showContent(first, size); mBinding.swipeLayout.setRefreshing(false); + if (size > 0) addVideo(result); mScroller.endLoading(result); - addVideo(result.getList()); - checkPosition(); - checkPage(size); + checkPosition(first); + checkMore(size); } - private void addVideo(List items) { - if (items.isEmpty()) return; - Vod.Style style = items.get(0).getStyle(getStyle()); + private void addVideo(Result result) { + Vod.Style style = result.getList().get(0).getStyle(getStyle()); if (!style.equals(mAdapter.getStyle())) setStyle(style); - mAdapter.addAll(items); + mAdapter.addAll(result.getList()); } - private void checkPosition() { + private void checkPosition(boolean first) { if (mPage != null) scrollToPosition(mPage.getPosition()); - else if (mScroller.first()) mBinding.recycler.scrollToPosition(0); + else if (first) mBinding.recycler.scrollToPosition(0); mPage = null; } - private void checkPage(int count) { + private void checkMore(int count) { if (mScroller.isDisable() || count == 0 || mAdapter.getItemCount() >= 40 || isHome()) return; getVideo(getTypeId(), String.valueOf(mScroller.addPage())); }