From 01bc900f1c1d985e610a2b2190f4c0c75332c900 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sat, 4 Feb 2023 00:59:04 +0800 Subject: [PATCH] Clean code --- .../android/tv/ui/fragment/VodFragment.java | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 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 4f8299f5f..ad541bc8a 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 @@ -38,7 +38,7 @@ import java.util.List; public class VodFragment extends BaseFragment implements CustomScroller.Callback, VodPresenter.OnClickListener { - private HashMap mExtend; + private HashMap mExtends; private FragmentVodBinding mBinding; private CustomScroller mScroller; private ArrayObjectAdapter mAdapter; @@ -83,7 +83,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback @Override protected void initView() { mTypeIds = new ArrayList<>(); - mExtend = new HashMap<>(); + mExtends = new HashMap<>(); mFilters = Filter.arrayFrom(getFilter()); mBinding.progressLayout.showProgress(); setRecyclerView(); @@ -115,7 +115,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback private void setClick(ArrayObjectAdapter adapter, String key, Filter.Value item) { for (int i = 0; i < adapter.size(); i++) ((Filter.Value) adapter.get(i)).setActivated(item); adapter.notifyArrayItemRangeChanged(0, adapter.size()); - mExtend.put(key, item.getV()); + mExtends.put(key, item.getV()); if (isFolder()) refresh(1); else getVideo(); } @@ -137,7 +137,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback int filterSize = mOpen ? mFilters.size() : 0; boolean clear = page.equals("1") && mAdapter.size() > filterSize; if (clear) mAdapter.removeItems(filterSize, mAdapter.size() - filterSize); - mViewModel.categoryContent(getKey(), typeId, page, true, mExtend); + mViewModel.categoryContent(getKey(), typeId, page, true, mExtends); } private boolean checkLastSize(List items) { @@ -161,31 +161,37 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback mAdapter.addAll(mAdapter.size(), rows); } - private void addFilter() { + private ListRow getRow(Filter filter) { + FilterPresenter presenter = new FilterPresenter(filter.getKey()); + ArrayObjectAdapter adapter = new ArrayObjectAdapter(presenter); + presenter.setOnClickListener((key, item) -> setClick(adapter, key, item)); + adapter.setItems(filter.getValue(), null); + return new ListRow(adapter); + } + + private void showFilter() { List rows = new ArrayList<>(); - for (Filter filter : mFilters) { - FilterPresenter presenter = new FilterPresenter(filter.getKey()); - ArrayObjectAdapter adapter = new ArrayObjectAdapter(presenter); - presenter.setOnClickListener((key, item) -> setClick(adapter, key, item)); - adapter.setItems(filter.getValue(), null); - rows.add(new ListRow(adapter)); - } + for (Filter filter : mFilters) rows.add(getRow(filter)); mAdapter.addAll(0, rows); mBinding.recycler.postDelayed(() -> mBinding.recycler.smoothScrollToPosition(0), 50); } - private void refresh(int num) { - String typeId = mTypeIds.get(mTypeIds.size() - num); - mTypeIds = mTypeIds.subList(0, mTypeIds.size() - num); - getVideo(typeId, "1"); + private void hideFilter() { + mAdapter.removeItems(0, mFilters.size()); } public void toggleFilter(boolean open) { - if (open) addFilter(); - else mAdapter.removeItems(0, mFilters.size()); + if (open) showFilter(); + else hideFilter(); mOpen = open; } + private void refresh(int num) { + String typeId = mTypeIds.get(mTypeIds.size() - num); + mTypeIds = mTypeIds.subList(0, mTypeIds.size() - num); + getVideo(typeId, "1"); + } + public boolean canGoBack() { return mTypeIds.size() > 1; }