From 1be0b4a815a4eeb357419af648c04137df2ac694 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 12 Sep 2022 17:48:24 +0800 Subject: [PATCH] Support alist - part 1 --- .../com/fongmi/android/tv/ui/activity/VodActivity.java | 5 ++++- .../com/fongmi/android/tv/ui/fragment/VodFragment.java | 10 ++++++++-- .../main/java/com/fongmi/android/tv/bean/Class.java | 9 +++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java index a34b7fc08..34f60affb 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VodActivity.java @@ -20,6 +20,7 @@ import androidx.viewpager.widget.ViewPager; import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.bean.Class; +import com.fongmi.android.tv.bean.Filter; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.databinding.ActivityVodBinding; import com.fongmi.android.tv.ui.fragment.VodFragment; @@ -143,7 +144,9 @@ public class VodActivity extends BaseActivity { @NonNull @Override public Fragment getItem(int position) { - return VodFragment.newInstance(mResult.getTypes().get(position).getTypeId(), mResult.getFilters().get(mResult.getTypes().get(position).getTypeId())); + Class type = mResult.getTypes().get(position); + List filter = mResult.getFilters().get(type.getTypeId()); + return VodFragment.newInstance(type.getTypeId(), filter, type.getTypeFlag().equals("1")); } @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 65cd7d317..351e9c81a 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 @@ -52,10 +52,15 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback return getArguments().getString("filter"); } - public static VodFragment newInstance(String typeId, List filter) { + private boolean isFolder() { + return getArguments().getBoolean("folder"); + } + + public static VodFragment newInstance(String typeId, List filter, boolean folder) { Bundle args = new Bundle(); args.putString("typeId", typeId); args.putString("filter", new Gson().toJson(filter)); + args.putBoolean("folder", folder); VodFragment fragment = new VodFragment(); fragment.setArguments(args); return fragment; @@ -108,7 +113,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback } private void checkPage() { - if (mScroller.getPage() != 1 || mAdapter.size() >= 4) return; + if (mScroller.getPage() != 1 || mAdapter.size() >= 4 || isFolder()) return; mScroller.addPage(); getVideo("2"); } @@ -175,6 +180,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback @Override public void onLoadMore(String page) { + if (isFolder()) return; mScroller.setLoading(true); getVideo(page); } 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 a14cabd2c..cf9c52da2 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 @@ -1,5 +1,7 @@ package com.fongmi.android.tv.bean; +import android.text.TextUtils; + import com.fongmi.android.tv.R; import com.google.gson.annotations.SerializedName; @@ -18,6 +20,9 @@ public class Class { @SerializedName("type_name") private String typeName; + @SerializedName("type_flag") + private String typeFlag; + private Boolean filter; public String getTypeId() { @@ -28,6 +33,10 @@ public class Class { return typeName; } + public String getTypeFlag() { + return TextUtils.isEmpty(typeFlag) ? "" : typeFlag; + } + public void setFilter(Boolean filter) { this.filter = filter; }