Adjust back logic

pull/137/head
FongMi 3 years ago
parent 9bf3609140
commit 38c57c1928
  1. 17
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  2. 19
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.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());
}

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

Loading…
Cancel
Save