From 198dd0c8380cc04b7bc0aad231c0e8735eaf53ef Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 16 Jan 2024 16:52:14 +0800 Subject: [PATCH] Clean code --- .../android/tv/ui/activity/VideoActivity.java | 20 +++++++++---------- .../android/tv/ui/adapter/QualityAdapter.java | 10 +++++----- .../tv/ui/presenter/ArrayPresenter.java | 10 +++++----- .../tv/ui/presenter/EpisodePresenter.java | 19 +++++++++--------- .../leanback/res/layout/activity_video.xml | 8 ++++---- .../com/fongmi/android/tv/bean/Episode.java | 18 ++++++++--------- 6 files changed, 42 insertions(+), 43 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index a10129a5d..3c90d9a80 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -126,8 +126,8 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private ArrayObjectAdapter mPartAdapter; private QualityAdapter mQualityAdapter; private DanmakuContext mDanmakuContext; - private FlagPresenter mFlagPresenter; private ArrayPresenter mArrayPresenter; + private FlagPresenter mFlagPresenter; private PartPresenter mPartPresenter; private CustomKeyDownVod mKeyDown; private ExecutorService mExecutor; @@ -370,8 +370,8 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List mBinding.flag.setHorizontalSpacing(ResUtil.dp2px(8)); mBinding.flag.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT); mBinding.flag.setAdapter(new ItemBridgeAdapter(mFlagAdapter = new ArrayObjectAdapter(mFlagPresenter = new FlagPresenter(this::setFlagActivated)))); - mBinding.episode.setHorizontalSpacing(ResUtil.dp2px(8)); mBinding.episode.setVerticalSpacing(ResUtil.dp2px(8)); + mBinding.episode.setHorizontalSpacing(ResUtil.dp2px(8)); mBinding.episode.setAdapter(new ItemBridgeAdapter(mEpisodeAdapter = new ArrayObjectAdapter(mEpisodePresenter = new EpisodePresenter(this::setEpisodeActivated)))); mBinding.quality.setHorizontalSpacing(ResUtil.dp2px(8)); mBinding.quality.setRowHeight(ViewGroup.LayoutParams.WRAP_CONTENT); @@ -590,7 +590,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private void setEpisodeAdapter(List items) { int size = items.size(); - for(int i = 0; i < size; i ++) { items.get(i).setIndex(i); } + for (int i = 0; i < size; i++) items.get(i).setIndex(i); int episodeNameLength = items.isEmpty() ? 0 : items.get(0).getName().length(); int numColumns = 10; if (episodeNameLength > 40) numColumns = 2; @@ -598,7 +598,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List else if (episodeNameLength > 5) numColumns = 6; else if (episodeNameLength > 2) numColumns = 8; if (size < numColumns) numColumns = size; - int rowNum = (int)Math.ceil((double) size/ (double) numColumns); + int rowNum = (int) Math.ceil((double) size / (double) numColumns); int width = ResUtil.getScreenWidth() - ResUtil.dp2px(48); mBinding.episode.setNumColumns(numColumns); mBinding.episode.setColumnWidth((width - ((numColumns - 1) * ResUtil.dp2px(8))) / numColumns); @@ -642,13 +642,13 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void setQualityVisible(boolean visible) { + mArrayPresenter.setNextFocusDown(isVisible(mBinding.episode) ? R.id.episode : R.id.part); mFlagPresenter.setNextFocusDown(visible ? R.id.quality : R.id.array); + mBinding.quality.setVisibility(visible ? View.VISIBLE : View.GONE); mArrayPresenter.setNextFocusUp(visible ? R.id.quality : R.id.flag); - mArrayPresenter.setNextFocusDown(isVisible(mBinding.episode) ? R.id.episode : R.id.part); mEpisodePresenter.setNextFocusUp(R.id.array); - mQualityAdapter.setNextFocusUp(R.id.flag); mQualityAdapter.setNextFocusDown(R.id.array); - mBinding.quality.setVisibility(visible ? View.VISIBLE : View.GONE); + mQualityAdapter.setNextFocusUp(R.id.flag); notifyItemChanged(mBinding.episode, mEpisodeAdapter); notifyItemChanged(mBinding.array, mArrayAdapter); notifyItemChanged(mBinding.flag, mFlagAdapter); @@ -688,8 +688,8 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void updateFocus() { - mEpisodePresenter.setNextFocusDown(isVisible(mBinding.part) ? R.id.part : R.id.flag); mPartPresenter.setNextFocusUp(isVisible(mBinding.episode) ? R.id.episode : R.id.array); + mEpisodePresenter.setNextFocusDown(isVisible(mBinding.part) ? R.id.part : R.id.flag); notifyItemChanged(mBinding.episode, mEpisodeAdapter); notifyItemChanged(mBinding.part, mPartAdapter); } @@ -1055,9 +1055,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { List items = Part.get(response.body().string()); if (!items.contains(source)) items.add(0, source); - App.post(() -> mPartAdapter.setItems(items, null)); App.post(() -> { mBinding.part.setVisibility(View.VISIBLE); + mPartAdapter.setItems(items, null); updateFocus(); }); } @@ -1065,9 +1065,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List @Override public void onFailure(@NonNull Call call, @NonNull IOException e) { List items = List.of(source); - App.post(() -> mPartAdapter.setItems(items, null)); App.post(() -> { mBinding.part.setVisibility(View.VISIBLE); + mPartAdapter.setItems(items, null); updateFocus(); }); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java index cc6b44dd0..0665c2fe8 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/adapter/QualityAdapter.java @@ -27,6 +27,10 @@ public class QualityAdapter extends RecyclerView.Adapter onItemClick(position)); holder.binding.text.setActivated(mResult.getUrl().getPosition() == position); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ArrayPresenter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ArrayPresenter.java index bd574a0ab..d56dab770 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ArrayPresenter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/ArrayPresenter.java @@ -17,8 +17,8 @@ public class ArrayPresenter extends Presenter { private final String backward; private final String forward; private final String reverse; - private int nextFocusUp; private int nextFocusDown; + private int nextFocusUp; public ArrayPresenter(OnClickListener listener) { this.mListener = listener; @@ -34,14 +34,14 @@ public class ArrayPresenter extends Presenter { void onRevPlay(TextView view); } - public void setNextFocusUp(int nextFocusUp) { - this.nextFocusUp = nextFocusUp; - } - public void setNextFocusDown(int nextFocusDown) { this.nextFocusDown = nextFocusDown; } + public void setNextFocusUp(int nextFocusUp) { + this.nextFocusUp = nextFocusUp; + } + @Override public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) { return new ViewHolder(AdapterArrayBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/EpisodePresenter.java b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/EpisodePresenter.java index 1842fed99..14e97a400 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/EpisodePresenter.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/presenter/EpisodePresenter.java @@ -13,10 +13,10 @@ import com.fongmi.android.tv.databinding.AdapterEpisodeBinding; public class EpisodePresenter extends Presenter { private final OnClickListener mListener; + private int nextFocusDown; + private int nextFocusUp; private int numColumns; private int numRows; - private int nextFocusUp; - private int nextFocusDown; public EpisodePresenter(OnClickListener listener) { this.mListener = listener; @@ -26,14 +26,14 @@ public class EpisodePresenter extends Presenter { void onItemClick(Episode item); } - public void setNextFocusUp(int nextFocus) { - this.nextFocusUp = nextFocus; - } - public void setNextFocusDown(int nextFocus) { this.nextFocusDown = nextFocus; } + public void setNextFocusUp(int nextFocus) { + this.nextFocusUp = nextFocus; + } + public void setNumColumns(int numColumns) { this.numColumns = numColumns; } @@ -41,6 +41,7 @@ public class EpisodePresenter extends Presenter { public void setNumRows(int numRows) { this.numRows = numRows; } + @Override public Presenter.ViewHolder onCreateViewHolder(ViewGroup parent) { return new ViewHolder(AdapterEpisodeBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false)); @@ -50,13 +51,11 @@ public class EpisodePresenter extends Presenter { public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) { Episode item = (Episode) object; ViewHolder holder = (ViewHolder) viewHolder; - if (item.getIndex() < numColumns) holder.binding.text.setNextFocusUpId(nextFocusUp); - else holder.binding.text.setNextFocusUpId(0); - if (item.getIndex() >= (numRows - 1) * numColumns) holder.binding.text.setNextFocusDownId(nextFocusDown); - else holder.binding.text.setNextFocusDownId(0); holder.binding.text.setMaxEms(Product.getEms()); holder.binding.text.setActivated(item.isActivated()); holder.binding.text.setText(item.getDesc().concat(item.getName())); + holder.binding.text.setNextFocusUpId(item.getIndex() < numColumns ? nextFocusUp : 0); + holder.binding.text.setNextFocusDownId(item.getIndex() >= (numRows - 1) * numColumns ? nextFocusDown : 0); setOnClickListener(holder, view -> mListener.onItemClick(item)); } diff --git a/app/src/leanback/res/layout/activity_video.xml b/app/src/leanback/res/layout/activity_video.xml index 57294d2f9..f14aaef02 100644 --- a/app/src/leanback/res/layout/activity_video.xml +++ b/app/src/leanback/res/layout/activity_video.xml @@ -255,7 +255,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/video" - android:layout_marginTop="12dp" + android:layout_marginTop="16dp" android:overScrollMode="never"> @@ -301,8 +301,8 @@