From 225ed7fc970a4f7e05a80685bd92c3526cb75b44 Mon Sep 17 00:00:00 2001 From: FongMi Date: Wed, 23 Nov 2022 17:14:53 +0800 Subject: [PATCH] Search result support folder --- .../android/tv/ui/fragment/CollectFragment.java | 5 ++++- .../fongmi/android/tv/ui/fragment/VodFragment.java | 2 +- .../main/java/com/fongmi/android/tv/bean/Class.java | 12 ++++++++++++ .../main/java/com/fongmi/android/tv/bean/Result.java | 10 ++++++++++ .../main/java/com/fongmi/android/tv/bean/Vod.java | 4 ++++ 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java index 8e39fc3cd..f352ec6b0 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java @@ -12,10 +12,12 @@ import androidx.leanback.widget.ListRow; import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.R; +import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Vod; import com.fongmi.android.tv.databinding.FragmentVodBinding; import com.fongmi.android.tv.ui.activity.BaseFragment; import com.fongmi.android.tv.ui.activity.DetailActivity; +import com.fongmi.android.tv.ui.activity.VodActivity; import com.fongmi.android.tv.ui.custom.CustomRowPresenter; import com.fongmi.android.tv.ui.custom.CustomSelector; import com.fongmi.android.tv.ui.presenter.VodPresenter; @@ -86,7 +88,8 @@ public class CollectFragment extends BaseFragment implements VodPresenter.OnClic @Override public void onItemClick(Vod item) { getActivity().setResult(Activity.RESULT_OK); - DetailActivity.start(getActivity(), item.getSite().getKey(), item.getVodId()); + if (item.isFolder()) VodActivity.start(getActivity(), Result.folder(item)); + else DetailActivity.start(getActivity(), item.getSite().getKey(), item.getVodId()); } @Override diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index ce9b6a3ef..61cda0699 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -194,7 +194,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback @Override public void onItemClick(Vod item) { if (item.shouldSearch()) onLongClick(item); - else if (item.getVodTag().equals("folder")) getVideo(item.getVodId(), "1"); + else if (item.isFolder()) getVideo(item.getVodId(), "1"); else DetailActivity.start(getActivity(), item.getVodId()); } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Class.java b/app/src/main/java/com/fongmi/android/tv/bean/Class.java index 5cb0bd73e..f81dc2bc8 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Class.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Class.java @@ -30,14 +30,26 @@ public class Class { return typeId; } + public void setTypeId(String typeId) { + this.typeId = typeId; + } + public String getTypeName() { return typeName; } + public void setTypeName(String typeName) { + this.typeName = typeName; + } + public String getTypeFlag() { return TextUtils.isEmpty(typeFlag) ? "" : typeFlag; } + public void setTypeFlag(String typeFlag) { + this.typeFlag = typeFlag; + } + public void setFilter(Boolean filter) { this.filter = filter; } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Result.java b/app/src/main/java/com/fongmi/android/tv/bean/Result.java index 56d6e0adf..42f088590 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Result.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Result.java @@ -87,6 +87,16 @@ public class Result { return new Result(); } + public static Result folder(Vod item) { + Result result = new Result(); + Class type = new Class(); + type.setTypeFlag("1"); + type.setTypeId(item.getVodId()); + type.setTypeName(item.getVodName()); + result.setTypes(List.of(type)); + return result; + } + public List getTypes() { return types == null ? Collections.emptyList() : types; } diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java index 3cc72c5f5..2736a2602 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java @@ -168,6 +168,10 @@ public class Vod { return getVodRemarks().isEmpty() ? View.GONE : View.VISIBLE; } + public boolean isFolder() { + return getVodTag().equals("folder"); + } + public boolean shouldSearch() { return getVodId().isEmpty() || getVodId().startsWith("msearch:"); }