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 54fd2fac8..bae79172e 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 @@ -141,7 +141,6 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback boolean first = page.equals("1"); if (first) mLast = null; if (first) showProgress(); - if (isFolder()) mTypeIds.add(typeId); if (isFolder() && !mOpen) mBinding.recycler.moveToTop(); int filterSize = mOpen ? mFilters.size() : 0; boolean clear = first && mAdapter.size() > filterSize; @@ -186,12 +185,6 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback return new ListRow(adapter); } - private void refresh(int num) { - String typeId = mTypeIds.get(mTypeIds.size() - num); - mTypeIds = mTypeIds.subList(0, mTypeIds.size() - num); - getVideo(typeId, "1"); - } - private void showProgress() { if (!mOpen) mBinding.progress.getRoot().setVisibility(View.VISIBLE); } @@ -219,20 +212,22 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback } public void onRefresh() { - if (isFolder()) refresh(1); - else getVideo(); + if (mTypeIds.isEmpty()) getVideo(); + else getVideo(mTypeIds.get(mTypeIds.size() - 1), "1"); } public boolean canGoBack() { - return mTypeIds.size() > 1; + return !mTypeIds.isEmpty(); } public void goBack() { - refresh(2); + mTypeIds = mTypeIds.subList(0, mTypeIds.size() - 1); + onRefresh(); } @Override public void onItemClick(Vod item) { + if (item.isFolder()) mTypeIds.add(item.getVodId()); if (item.isFolder()) getVideo(item.getVodId(), "1"); else DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName()); } 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 72303a7f9..33d06c906 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 @@ -114,9 +114,8 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac } private void getVideo(String typeId, String page) { - if (isFolder()) mTypeIds.add(typeId); - if (isFolder()) mBinding.recycler.scrollToPosition(0); if (page.equals("1")) mAdapter.clear(); + if (isFolder()) mBinding.recycler.scrollToPosition(0); if (page.equals("1") && !mBinding.swipeLayout.isRefreshing()) mBinding.progressLayout.showProgress(); if (isHome() && page.equals("1")) setAdapter(getParent().getResult()); else mViewModel.categoryContent(getKey(), typeId, page, true, mExtends); @@ -136,12 +135,6 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac getVideo(getTypeId(), String.valueOf(mScroller.addPage())); } - private void refresh(int num) { - String typeId = mTypeIds.get(mTypeIds.size() - num); - mTypeIds = mTypeIds.subList(0, mTypeIds.size() - num); - getVideo(typeId, "1"); - } - public void setFilter(String key, String value) { mExtends.put(key, value); onRefresh(); @@ -149,8 +142,8 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac @Override public void onRefresh() { - if (isFolder()) refresh(1); - else getVideo(); + if (mTypeIds.isEmpty()) getVideo(); + else getVideo(mTypeIds.get(mTypeIds.size() - 1), "1"); } @Override @@ -162,6 +155,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac @Override public void onItemClick(Vod item) { + if (item.isFolder()) mTypeIds.add(item.getVodId()); if (item.isFolder()) getVideo(item.getVodId(), "1"); else DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName()); } @@ -174,8 +168,9 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac @Override public boolean canBack() { - if (mTypeIds.size() < 2) return true; - refresh(2); + if (mTypeIds.isEmpty()) return true; + mTypeIds = mTypeIds.subList(0, mTypeIds.size() - 1); + onRefresh(); return false; } }