[mobile] support page count

pull/137/head
FongMi 2 years ago
parent c10ce30c09
commit 09dde14e38
  1. 6
      app/src/main/java/com/fongmi/android/tv/bean/Result.java
  2. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  3. 24
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomScroller.java
  4. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java

@ -59,6 +59,8 @@ public class Result {
private String key;
@SerializedName("subs")
private List<Sub> subs;
@SerializedName("pagecount")
private int pagecount;
private boolean error;
private String msg;
@ -215,6 +217,10 @@ public class Result {
return subs == null ? Collections.emptyList() : subs;
}
public int getPageCount() {
return pagecount;
}
public boolean isError() {
return error;
}

@ -154,11 +154,10 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
mCollectAdapter.add(result.getList());
});
mViewModel.result.observe(this, result -> {
int size = result.getList().size();
mScroller.endLoading(size == 0);
boolean same = size > 0 && mCollectAdapter.getActivated().getSite().equals(result.getList().get(0).getSite());
boolean same = result.getList().size() > 0 && mCollectAdapter.getActivated().getSite().equals(result.getList().get(0).getSite());
if (same) mCollectAdapter.getActivated().getList().addAll(result.getList());
if (same) mVodAdapter.addAll(result.getList());
mScroller.endLoading(result);
});
}
@ -231,6 +230,7 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
}
private void showAgent() {
mScroller.reset();
mVodAdapter.clear();
mCollectAdapter.clear();
mBinding.view.setVisibility(View.GONE);
@ -268,6 +268,7 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
mBinding.recycler.scrollToPosition(0);
mCollectAdapter.setActivated(position);
mVodAdapter.clear().addAll(item.getList());
mScroller.setEnable(true);
}
@Override

@ -3,24 +3,29 @@ package com.fongmi.android.tv.ui.custom;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.fongmi.android.tv.bean.Result;
public class CustomScroller extends RecyclerView.OnScrollListener {
private final Callback callback;
private boolean loading;
private boolean enable;
private int page;
public CustomScroller(Callback callback) {
this.callback = callback;
this.enable = true;
this.page = 1;
}
@Override
public void onScrolled(@NonNull RecyclerView view, int dx, int dy) {
if (isLoading() || view.getScrollState() == RecyclerView.SCROLL_STATE_IDLE || callback == null) return;
if (!isEnable() || isLoading() || view.getScrollState() == RecyclerView.SCROLL_STATE_IDLE || callback == null) return;
if (!view.canScrollVertically(1) && dy > 0) callback.onLoadMore(String.valueOf(++page));
}
public void reset() {
enable = true;
page = 1;
}
@ -32,12 +37,25 @@ public class CustomScroller extends RecyclerView.OnScrollListener {
return loading;
}
public boolean isEnable() {
return enable;
}
public void setLoading(boolean loading) {
this.loading = loading;
}
public void endLoading(boolean empty) {
if (empty) page--;
public void setEnable(int pageCount) {
this.enable = page < pageCount || pageCount == 0;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public void endLoading(Result result) {
if (result.getList().isEmpty()) page--;
setEnable(result.getPageCount());
setLoading(false);
}

@ -133,7 +133,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
int size = result.getList().size();
mBinding.progressLayout.showContent(isFolder(), size);
mBinding.swipeLayout.setRefreshing(false);
mScroller.endLoading(size == 0);
mScroller.endLoading(result);
addVideo(result.getList());
checkPosition();
checkPage(size);

Loading…
Cancel
Save