fongmi
jhengazuki 1 month ago
parent f9032e85d7
commit 1655feae05
  1. 15
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  2. 9
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java

@ -42,6 +42,7 @@ public class CollectActivity extends BaseActivity {
private ActivityCollectBinding mBinding; private ActivityCollectBinding mBinding;
private ArrayObjectAdapter mAdapter; private ArrayObjectAdapter mAdapter;
private SiteViewModel mViewModel; private SiteViewModel mViewModel;
private List<Site> mSites;
private View mOldView; private View mOldView;
public static void start(Activity activity, String keyword) { public static void start(Activity activity, String keyword) {
@ -77,6 +78,7 @@ public class CollectActivity extends BaseActivity {
setRecyclerView(); setRecyclerView();
setViewModel(); setViewModel();
saveKeyword(); saveKeyword();
setSites();
setPager(); setPager();
search(); search();
} }
@ -121,22 +123,21 @@ public class CollectActivity extends BaseActivity {
Setting.putKeyword(App.gson().toJson(items)); Setting.putKeyword(App.gson().toJson(items));
} }
private void setPager() { private void setSites() {
mBinding.pager.setAdapter(new PageAdapter(getSupportFragmentManager())); mSites = VodConfig.get().getSites().stream().filter(Site::isSearchable).collect(Collectors.toList());
} }
private List<Site> getSites() { private void setPager() {
return VodConfig.get().getSites().stream().filter(Site::isSearchable).collect(Collectors.toList()); mBinding.pager.setAdapter(new PageAdapter(getSupportFragmentManager()));
} }
private void search() { private void search() {
mViewModel.stopSearch(); mViewModel.stopSearch();
List<Site> sites = getSites(); if (mSites.isEmpty()) return;
if (sites.isEmpty()) return;
mAdapter.add(Collect.all()); mAdapter.add(Collect.all());
mBinding.pager.getAdapter().notifyDataSetChanged(); mBinding.pager.getAdapter().notifyDataSetChanged();
mBinding.result.setText(getString(R.string.collect_result, getKeyword())); mBinding.result.setText(getString(R.string.collect_result, getKeyword()));
mViewModel.searchContent(sites, getKeyword(), false); mViewModel.searchContent(mSites, getKeyword(), false);
} }
private void onChildSelected(@Nullable RecyclerView.ViewHolder child) { private void onChildSelected(@Nullable RecyclerView.ViewHolder child) {

@ -41,7 +41,7 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
private SearchAdapter mSearchAdapter; private SearchAdapter mSearchAdapter;
private CustomScroller mScroller; private CustomScroller mScroller;
private SiteViewModel mViewModel; private SiteViewModel mViewModel;
private List<Site> sites; private List<Site> mSites;
public static CollectFragment newInstance(String keyword) { public static CollectFragment newInstance(String keyword) {
Bundle args = new Bundle(); Bundle args = new Bundle();
@ -97,14 +97,14 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
} }
private void setSites() { private void setSites() {
sites = VodConfig.get().getSites().stream().filter(Site::isSearchable).collect(Collectors.toList()); mSites = VodConfig.get().getSites().stream().filter(Site::isSearchable).collect(Collectors.toList());
} }
private void setWidth() { private void setWidth() {
int width = 0; int width = 0;
int space = ResUtil.dp2px(48); int space = ResUtil.dp2px(48);
int maxWidth = ResUtil.getScreenWidth() / (getCount() + 1) - ResUtil.dp2px(40); int maxWidth = ResUtil.getScreenWidth() / (getCount() + 1) - ResUtil.dp2px(40);
for (Site site : sites) width = Math.max(width, ResUtil.getTextWidth(site.getName(), 14)); for (Site site : mSites) width = Math.max(width, ResUtil.getTextWidth(site.getName(), 14));
int contentWidth = width + space; int contentWidth = width + space;
int minWidth = ResUtil.dp2px(120); int minWidth = ResUtil.dp2px(120);
int finalWidth = Math.max(minWidth, Math.min(contentWidth, maxWidth)); int finalWidth = Math.max(minWidth, Math.min(contentWidth, maxWidth));
@ -115,7 +115,8 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
private void search() { private void search() {
mViewModel.stopSearch(); mViewModel.stopSearch();
if (!sites.isEmpty()) mCollectAdapter.setItems(List.of(Collect.all()), () -> mViewModel.searchContent(sites, getKeyword(), false)); if (mSites.isEmpty()) return;
mCollectAdapter.setItems(List.of(Collect.all()), () -> mViewModel.searchContent(mSites, getKeyword(), false));
} }
private int getCount() { private int getCount() {

Loading…
Cancel
Save