diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 35732be1e..4a75d9691 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -64,7 +64,7 @@ import com.fongmi.android.tv.ui.adapter.EpisodeAdapter; import com.fongmi.android.tv.ui.adapter.FlagAdapter; import com.fongmi.android.tv.ui.adapter.ParseAdapter; import com.fongmi.android.tv.ui.adapter.QuickAdapter; -import com.fongmi.android.tv.ui.adapter.UrlAdapter; +import com.fongmi.android.tv.ui.adapter.QualityAdapter; import com.fongmi.android.tv.ui.base.BaseActivity; import com.fongmi.android.tv.ui.base.ViewType; import com.fongmi.android.tv.ui.custom.CustomKeyDownVod; @@ -99,7 +99,7 @@ import java.util.concurrent.Executors; import tv.danmaku.ijk.media.player.ui.IjkVideoView; -public class DetailActivity extends BaseActivity implements Clock.Callback, CustomKeyDownVod.Listener, CastDialog.Listener, PiPReceiver.Listener, TrackDialog.Listener, ControlDialog.Listener, FlagAdapter.OnClickListener, EpisodeAdapter.OnClickListener, UrlAdapter.OnClickListener, QuickAdapter.OnClickListener, ParseAdapter.OnClickListener { +public class DetailActivity extends BaseActivity implements Clock.Callback, CustomKeyDownVod.Listener, CastDialog.Listener, PiPReceiver.Listener, TrackDialog.Listener, ControlDialog.Listener, FlagAdapter.OnClickListener, EpisodeAdapter.OnClickListener, QualityAdapter.OnClickListener, QuickAdapter.OnClickListener, ParseAdapter.OnClickListener { private ViewGroup.LayoutParams mFrameParams; private Observer mObserveDetail; @@ -107,6 +107,7 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust private Observer mObserveSearch; private ActivityDetailBinding mBinding; private EpisodeAdapter mEpisodeAdapter; + private QualityAdapter mQualityAdapter; private ControlDialog mControlDialog; private QuickAdapter mQuickAdapter; private ParseAdapter mParseAdapter; @@ -114,7 +115,6 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust private ExecutorService mExecutor; private SiteViewModel mViewModel; private FlagAdapter mFlagAdapter; - private UrlAdapter mUrlAdapter; private PiPReceiver mReceiver; private List mDialogs; private List mBroken; @@ -315,10 +315,6 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust } private void setRecyclerView() { - mBinding.url.setHasFixedSize(true); - mBinding.url.setItemAnimator(null); - mBinding.url.addItemDecoration(new SpaceItemDecoration(8)); - mBinding.url.setAdapter(mUrlAdapter = new UrlAdapter(this)); mBinding.flag.setHasFixedSize(true); mBinding.flag.setItemAnimator(null); mBinding.flag.addItemDecoration(new SpaceItemDecoration(8)); @@ -328,6 +324,10 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust mBinding.episode.setItemAnimator(null); mBinding.episode.addItemDecoration(new SpaceItemDecoration(8)); mBinding.episode.setAdapter(mEpisodeAdapter = new EpisodeAdapter(this, ViewType.LIST)); + mBinding.quality.setHasFixedSize(true); + mBinding.quality.setItemAnimator(null); + mBinding.quality.addItemDecoration(new SpaceItemDecoration(8)); + mBinding.quality.setAdapter(mQualityAdapter = new QualityAdapter(this)); mBinding.control.parse.setHasFixedSize(true); mBinding.control.parse.setItemAnimator(null); mBinding.control.parse.addItemDecoration(new SpaceItemDecoration(8)); @@ -464,14 +464,15 @@ public class DetailActivity extends BaseActivity implements Clock.Callback, Cust } private void setPlayer(Result result) { - result.getUrl().set(mUrlAdapter.getPosition()); + result.getUrl().set(mQualityAdapter.getPosition()); setUseParse(ApiConfig.hasParse() && ((result.getPlayUrl().isEmpty() && ApiConfig.get().getFlags().contains(result.getFlag())) || result.getJx() == 1)); if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.setParseVisible(isUseParse()); mBinding.control.parse.setVisibility(isFullscreen() && isUseParse() ? View.VISIBLE : View.GONE); mPlayers.start(result, isUseParse(), getSite().isChangeable() ? getSite().getTimeout() : -1); - mBinding.url.setVisibility(result.getUrl().isOnly() ? View.GONE : View.VISIBLE); + mBinding.qualityText.setVisibility(result.getUrl().isOnly() ? View.GONE : View.VISIBLE); + mBinding.quality.setVisibility(result.getUrl().isOnly() ? View.GONE : View.VISIBLE); mBinding.swipeLayout.setRefreshing(false); - mUrlAdapter.addAll(result); + mQualityAdapter.addAll(result); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/UrlAdapter.java b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java similarity index 78% rename from app/src/mobile/java/com/fongmi/android/tv/ui/adapter/UrlAdapter.java rename to app/src/mobile/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java index 5d2207296..abd009e27 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/UrlAdapter.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java @@ -7,15 +7,15 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.fongmi.android.tv.bean.Result; -import com.fongmi.android.tv.databinding.AdapterUrlBinding; +import com.fongmi.android.tv.databinding.AdapterQualityBinding; -public class UrlAdapter extends RecyclerView.Adapter { +public class QualityAdapter extends RecyclerView.Adapter { private final OnClickListener mListener; private Result mResult; private int position; - public UrlAdapter(OnClickListener listener) { + public QualityAdapter(OnClickListener listener) { this.mListener = listener; this.mResult = Result.empty(); } @@ -42,7 +42,7 @@ public class UrlAdapter extends RecyclerView.Adapter { @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return new ViewHolder(AdapterUrlBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); + return new ViewHolder(AdapterQualityBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); } @Override @@ -61,9 +61,9 @@ public class UrlAdapter extends RecyclerView.Adapter { static class ViewHolder extends RecyclerView.ViewHolder { - private final AdapterUrlBinding binding; + private final AdapterQualityBinding binding; - ViewHolder(@NonNull AdapterUrlBinding binding) { + ViewHolder(@NonNull AdapterQualityBinding binding) { super(binding.getRoot()); this.binding = binding; } diff --git a/app/src/mobile/res/layout/activity_detail.xml b/app/src/mobile/res/layout/activity_detail.xml index 4bea61fba..986bd224b 100644 --- a/app/src/mobile/res/layout/activity_detail.xml +++ b/app/src/mobile/res/layout/activity_detail.xml @@ -231,6 +231,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" android:clipChildren="false" android:clipToPadding="false" android:orientation="horizontal" @@ -238,18 +239,34 @@ android:paddingEnd="16dp" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> + + + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + tools:visibility="visible" /> + app:spanCount="2" + tools:listitem="@layout/adapter_quick" + tools:visibility="visible" /> diff --git a/app/src/mobile/res/layout/adapter_url.xml b/app/src/mobile/res/layout/adapter_quality.xml similarity index 100% rename from app/src/mobile/res/layout/adapter_url.xml rename to app/src/mobile/res/layout/adapter_quality.xml diff --git a/app/src/mobile/res/values-zh-rCN/strings.xml b/app/src/mobile/res/values-zh-rCN/strings.xml index ec4733cca..16c8e43cc 100644 --- a/app/src/mobile/res/values-zh-rCN/strings.xml +++ b/app/src/mobile/res/values-zh-rCN/strings.xml @@ -16,6 +16,7 @@ 线路 更多 选集 + 画质 简介 快搜“%s diff --git a/app/src/mobile/res/values-zh-rTW/strings.xml b/app/src/mobile/res/values-zh-rTW/strings.xml index cf1967f16..934c84d31 100644 --- a/app/src/mobile/res/values-zh-rTW/strings.xml +++ b/app/src/mobile/res/values-zh-rTW/strings.xml @@ -16,6 +16,7 @@ 線路 更多 選集 + 畫質 簡介 快搜「%s diff --git a/app/src/mobile/res/values/strings.xml b/app/src/mobile/res/values/strings.xml index ef7d30f56..3280a7030 100644 --- a/app/src/mobile/res/values/strings.xml +++ b/app/src/mobile/res/values/strings.xml @@ -16,6 +16,7 @@ Flag More Episode + Quality Summary Searching %s