pull/137/head
FongMi 3 years ago
parent c4adf1061f
commit bc68143109
  1. 24
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  3. 12
      app/src/leanback/java/com/fongmi/android/tv/ui/presenter/QuickPresenter.java
  4. 2
      app/src/leanback/res/layout/activity_detail.xml
  5. 0
      app/src/leanback/res/layout/adapter_quick.xml

@ -61,7 +61,7 @@ import com.fongmi.android.tv.ui.presenter.EpisodePresenter;
import com.fongmi.android.tv.ui.presenter.FlagPresenter;
import com.fongmi.android.tv.ui.presenter.ParsePresenter;
import com.fongmi.android.tv.ui.presenter.PartPresenter;
import com.fongmi.android.tv.ui.presenter.SearchPresenter;
import com.fongmi.android.tv.ui.presenter.QuickPresenter;
import com.fongmi.android.tv.utils.Clock;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.ImgUtil;
@ -95,9 +95,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private ViewGroup.LayoutParams mFrameParams;
private EpisodePresenter mEpisodePresenter;
private ArrayObjectAdapter mEpisodeAdapter;
private ArrayObjectAdapter mSearchAdapter;
private ArrayObjectAdapter mArrayAdapter;
private ArrayObjectAdapter mParseAdapter;
private ArrayObjectAdapter mQuickAdapter;
private ArrayObjectAdapter mFlagAdapter;
private ArrayObjectAdapter mPartAdapter;
private ActivityDetailBinding mBinding;
@ -321,9 +321,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.part.setHorizontalSpacing(ResUtil.dp2px(8));
mBinding.part.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mBinding.part.setAdapter(new ItemBridgeAdapter(mPartAdapter = new ArrayObjectAdapter(mPartPresenter = new PartPresenter(item -> initSearch(item, false)))));
mBinding.search.setHorizontalSpacing(ResUtil.dp2px(8));
mBinding.search.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mBinding.search.setAdapter(new ItemBridgeAdapter(mSearchAdapter = new ArrayObjectAdapter(new SearchPresenter(this::setSearch))));
mBinding.quick.setHorizontalSpacing(ResUtil.dp2px(8));
mBinding.quick.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mBinding.quick.setAdapter(new ItemBridgeAdapter(mQuickAdapter = new ArrayObjectAdapter(new QuickPresenter(this::setSearch))));
mBinding.control.parse.setHorizontalSpacing(ResUtil.dp2px(8));
mBinding.control.parse.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
mBinding.control.parse.setAdapter(new ItemBridgeAdapter(mParseAdapter = new ArrayObjectAdapter(new ParsePresenter(this::setParseActivated))));
@ -1024,7 +1024,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void checkSearch(boolean force) {
if (mSearchAdapter.size() == 0) initSearch(mBinding.name.getText().toString(), true);
if (mQuickAdapter.size() == 0) initSearch(mBinding.name.getText().toString(), true);
else if (isAutoMode() || force) nextSite();
}
@ -1043,7 +1043,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void startSearch(String keyword) {
mSearchAdapter.clear();
mQuickAdapter.clear();
List<Site> sites = new ArrayList<>();
mExecutor = Executors.newFixedThreadPool(Constant.THREAD_POOL);
for (Site site : ApiConfig.get().getSites()) if (isPass(site)) sites.add(site);
@ -1064,8 +1064,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void setSearch(List<Vod> items) {
Iterator<Vod> iterator = items.iterator();
while (iterator.hasNext()) if (mismatch(iterator.next())) iterator.remove();
mSearchAdapter.addAll(mSearchAdapter.size(), items);
mBinding.search.setVisibility(View.VISIBLE);
mQuickAdapter.addAll(mQuickAdapter.size(), items);
mBinding.quick.setVisibility(View.VISIBLE);
if (isInitAuto()) nextSite();
if (items.isEmpty()) return;
App.removeCallbacks(mR3);
@ -1096,10 +1096,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void nextSite() {
if (mSearchAdapter.size() == 0) return;
Vod item = (Vod) mSearchAdapter.get(0);
if (mQuickAdapter.size() == 0) return;
Vod item = (Vod) mQuickAdapter.get(0);
Notify.show(getString(R.string.play_switch_site, item.getSiteName()));
mSearchAdapter.removeItems(0, 1);
mQuickAdapter.removeItems(0, 1);
mBroken.add(getId());
setInitAuto(false);
getDetail(item);

@ -161,7 +161,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
private void addVideo(List<Vod> items) {
if (items.isEmpty()) return;
Vod.Style style = items.get(0).getStyle(getStyle());
if (style.isFolder()) mAdapter.addAll(mAdapter.size(), items);
if (style.isList()) mAdapter.addAll(mAdapter.size(), items);
else addGrid(items, style);
}

@ -7,15 +7,15 @@ import androidx.annotation.NonNull;
import androidx.leanback.widget.Presenter;
import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.databinding.AdapterSearchBinding;
import com.fongmi.android.tv.databinding.AdapterQuickBinding;
import com.fongmi.android.tv.utils.ResUtil;
public class SearchPresenter extends Presenter {
public class QuickPresenter extends Presenter {
private final OnClickListener mListener;
private int width;
public SearchPresenter(OnClickListener listener) {
public QuickPresenter(OnClickListener listener) {
this.mListener = listener;
setLayoutSize();
}
@ -33,7 +33,7 @@ public class SearchPresenter extends Presenter {
@Override
public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) {
ViewHolder holder = new ViewHolder(AdapterSearchBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
ViewHolder holder = new ViewHolder(AdapterQuickBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
holder.binding.getRoot().getLayoutParams().width = width;
return holder;
}
@ -54,9 +54,9 @@ public class SearchPresenter extends Presenter {
public static class ViewHolder extends Presenter.ViewHolder {
private final AdapterSearchBinding binding;
private final AdapterQuickBinding binding;
public ViewHolder(@NonNull AdapterSearchBinding binding) {
public ViewHolder(@NonNull AdapterQuickBinding binding) {
super(binding.getRoot());
this.binding = binding;
}

@ -295,7 +295,7 @@
android:paddingBottom="8dp" />
<androidx.leanback.widget.HorizontalGridView
android:id="@+id/search"
android:id="@+id/quick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"

Loading…
Cancel
Save