pull/137/head
FongMi 3 years ago
parent 16cc726b52
commit 4a9fe89d6d
  1. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  2. 32
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/bean/Collect.java
  4. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java

@ -189,8 +189,7 @@ public class CollectActivity extends BaseActivity {
@NonNull
@Override
public Fragment getItem(int position) {
Collect collect = (Collect) mAdapter.get(position);
return CollectFragment.newInstance(getKeyword(), collect.getSite(), collect.getList());
return CollectFragment.newInstance(getKeyword(), (Collect) mAdapter.get(position));
}
@Override

@ -14,8 +14,8 @@ import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.Product;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.bean.Collect;
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;
import com.fongmi.android.tv.model.SiteViewModel;
@ -39,12 +39,11 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call
private ArrayObjectAdapter mLast;
private CustomScroller mScroller;
private SiteViewModel mViewModel;
private List<Vod> mItems;
private Collect mCollect;
private String mKeyword;
private Site mSite;
public static CollectFragment newInstance(String keyword, Site site, List<Vod> items) {
return new CollectFragment().setKeyword(keyword).setSite(site).setItems(items);
public static CollectFragment newInstance(String keyword, Collect collect) {
return new CollectFragment().setKeyword(keyword).setCollect(collect);
}
private CollectFragment setKeyword(String keyword) {
@ -52,20 +51,11 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call
return this;
}
private CollectFragment setSite(Site site) {
this.mSite = site;
private CollectFragment setCollect(Collect collect) {
this.mCollect = collect;
return this;
}
private CollectFragment setItems(List<Vod> items) {
this.mItems = items;
return this;
}
private boolean isAll() {
return mSite.getKey().equals("all");
}
@Override
protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return mBinding = FragmentVodBinding.inflate(inflater, container, false);
@ -73,23 +63,22 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call
@Override
protected void initView() {
mScroller = new CustomScroller(this);
setRecyclerView();
setViewModel();
}
private void setRecyclerView() {
CustomSelector selector = new CustomSelector();
if (!isAll()) mBinding.recycler.addOnScrollListener(mScroller);
selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class);
mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(selector)));
mBinding.recycler.setHeader(getActivity().findViewById(R.id.result), getActivity().findViewById(R.id.recycler));
mBinding.recycler.addOnScrollListener(mScroller = new CustomScroller(this));
mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16));
}
private void setViewModel() {
mViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mViewModel.search.observe(this, result -> {
mViewModel.result.observe(this, result -> {
int size = result.getList().size();
mScroller.endLoading(size == 0);
addVideo(result.getList());
@ -98,7 +87,7 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call
@Override
protected void initData() {
addVideo(mItems);
addVideo(mCollect.getList());
}
private boolean checkLastSize(List<Vod> items) {
@ -136,7 +125,8 @@ public class CollectFragment extends BaseFragment implements CustomScroller.Call
@Override
public void onLoadMore(String page) {
mViewModel.searchContent(mSite, mKeyword, page);
if (mCollect.getSite().getKey().equals("all")) return;
mViewModel.searchContent(mCollect.getSite(), mKeyword, page);
mScroller.setLoading(true);
}

@ -42,8 +42,4 @@ public class Collect {
public void setActivated(boolean activated) {
this.activated = activated;
}
public boolean isAll() {
return getSite().getKey().equals("all");
}
}

@ -149,7 +149,7 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
private void setViewModel() {
mViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mViewModel.search.observe(this, result -> {
if (mCollectAdapter.getActivated().isAll()) mVodAdapter.addAll(result.getList());
if (mCollectAdapter.getPosition() == 0) mVodAdapter.addAll(result.getList());
mCollectAdapter.add(Collect.create(result.getList()));
mCollectAdapter.add(result.getList());
});
@ -283,7 +283,7 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
@Override
public void onLoadMore(String page) {
if (mCollectAdapter.getActivated().isAll()) return;
if (mCollectAdapter.getPosition() == 0) return;
mViewModel.searchContent(mCollectAdapter.getActivated().getSite(), mBinding.keyword.getText().toString(), page);
mScroller.setLoading(true);
}

Loading…
Cancel
Save