|
|
|
|
@ -35,6 +35,7 @@ import com.fongmi.android.tv.ui.adapter.VodAdapter; |
|
|
|
|
import com.fongmi.android.tv.ui.adapter.WordAdapter; |
|
|
|
|
import com.fongmi.android.tv.ui.base.BaseActivity; |
|
|
|
|
import com.fongmi.android.tv.ui.base.ViewType; |
|
|
|
|
import com.fongmi.android.tv.ui.custom.CustomScroller; |
|
|
|
|
import com.fongmi.android.tv.ui.custom.CustomTextListener; |
|
|
|
|
import com.fongmi.android.tv.ui.custom.dialog.SiteDialog; |
|
|
|
|
import com.fongmi.android.tv.utils.Prefers; |
|
|
|
|
@ -51,13 +52,14 @@ import java.util.concurrent.Executors; |
|
|
|
|
import okhttp3.Call; |
|
|
|
|
import okhttp3.Response; |
|
|
|
|
|
|
|
|
|
public class CollectActivity extends BaseActivity implements SiteCallback, WordAdapter.OnClickListener, RecordAdapter.OnClickListener, CollectAdapter.OnClickListener, VodAdapter.OnClickListener { |
|
|
|
|
public class CollectActivity extends BaseActivity implements CustomScroller.Callback, SiteCallback, WordAdapter.OnClickListener, RecordAdapter.OnClickListener, CollectAdapter.OnClickListener, VodAdapter.OnClickListener { |
|
|
|
|
|
|
|
|
|
private ActivityCollectBinding mBinding; |
|
|
|
|
private CollectAdapter mCollectAdapter; |
|
|
|
|
private RecordAdapter mRecordAdapter; |
|
|
|
|
private ExecutorService mExecutor; |
|
|
|
|
private WordAdapter mWordAdapter; |
|
|
|
|
private CustomScroller mScroller; |
|
|
|
|
private SiteViewModel mViewModel; |
|
|
|
|
private VodAdapter mVodAdapter; |
|
|
|
|
private List<Site> mSites; |
|
|
|
|
@ -87,6 +89,7 @@ public class CollectActivity extends BaseActivity implements SiteCallback, WordA |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
protected void initView(Bundle savedInstanceState) { |
|
|
|
|
mScroller = new CustomScroller(this); |
|
|
|
|
mSites = new ArrayList<>(); |
|
|
|
|
setRecyclerView(); |
|
|
|
|
setLayoutSize(); |
|
|
|
|
@ -120,6 +123,7 @@ public class CollectActivity extends BaseActivity implements SiteCallback, WordA |
|
|
|
|
mBinding.collect.setItemAnimator(null); |
|
|
|
|
mBinding.collect.setAdapter(mCollectAdapter = new CollectAdapter(this)); |
|
|
|
|
mBinding.recycler.setHasFixedSize(true); |
|
|
|
|
mBinding.recycler.addOnScrollListener(mScroller); |
|
|
|
|
mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter(this)); |
|
|
|
|
mBinding.wordRecycler.setHasFixedSize(true); |
|
|
|
|
mBinding.wordRecycler.setAdapter(mWordAdapter = new WordAdapter(this)); |
|
|
|
|
@ -145,10 +149,17 @@ public class CollectActivity extends BaseActivity implements SiteCallback, WordA |
|
|
|
|
private void setViewModel() { |
|
|
|
|
mViewModel = new ViewModelProvider(this).get(SiteViewModel.class); |
|
|
|
|
mViewModel.search.observe(this, result -> { |
|
|
|
|
if (mCollectAdapter.getPosition() == 0) mVodAdapter.addAll(result.getList()); |
|
|
|
|
if (mCollectAdapter.getActivated().isAll()) mVodAdapter.addAll(result.getList()); |
|
|
|
|
mCollectAdapter.add(Collect.create(result.getList())); |
|
|
|
|
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()); |
|
|
|
|
if (same) mCollectAdapter.getActivated().getList().addAll(result.getList()); |
|
|
|
|
if (same) mVodAdapter.addAll(result.getList()); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void checkKeyword() { |
|
|
|
|
@ -270,6 +281,13 @@ public class CollectActivity extends BaseActivity implements SiteCallback, WordA |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onLoadMore(String page) { |
|
|
|
|
if (mCollectAdapter.getActivated().isAll()) return; |
|
|
|
|
mViewModel.searchContent(mCollectAdapter.getActivated().getSite(), mBinding.keyword.getText().toString(), page); |
|
|
|
|
mScroller.setLoading(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onBackPressed() { |
|
|
|
|
if (isVisible(mBinding.result)) { |
|
|
|
|
|