From 871a07389dc3972cbd5b1c23fd49bcb478730695 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 4 Dec 2022 16:17:33 +0800 Subject: [PATCH] Support quick search - part 4 --- .../tv/ui/activity/DetailActivity.java | 25 ++++++++++--------- .../leanback/res/layout/activity_detail.xml | 7 +++--- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 16aa3ed6f..f952c12c9 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -329,9 +329,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void setText(TextView view, int resId, String text) { - if (text.isEmpty()) view.setVisibility(View.GONE); - else if (resId > 0) view.setText(ResUtil.getString(resId, text)); - else view.setText(text); + view.setVisibility(text.isEmpty() ? View.GONE : View.VISIBLE); + view.setText(resId > 0 ? ResUtil.getString(resId, text) : text); view.setTag(text); } @@ -341,10 +340,16 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mBinding.flag.setSelectedPosition(mFlagAdapter.indexOf(item)); mEpisodeAdapter.setItems(item.getEpisodes(), null); notifyItemChanged(mBinding.flag, mFlagAdapter); - setArray(item.getEpisodes().size()); + setEpisodeAdapter(item.getEpisodes()); seamless(item); } + private void setEpisodeAdapter(List items) { + mBinding.episode.setVisibility(items.isEmpty() ? View.GONE : View.VISIBLE); + mEpisodeAdapter.setItems(items, null); + setArray(items.size()); + } + private void seamless(Vod.Flag flag) { Vod.Flag.Episode episode = flag.find(mHistory.getVodRemarks()); if (episode == null || episode.isActivated()) return; @@ -364,9 +369,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void reverseEpisode() { for (int i = 0; i < mFlagAdapter.size(); i++) Collections.reverse(((Vod.Flag) mFlagAdapter.get(i)).getEpisodes()); - mEpisodeAdapter.setItems(getVodFlag().getEpisodes(), null); + setEpisodeAdapter(getVodFlag().getEpisodes()); mBinding.episode.setSelectedPosition(getEpisodePosition()); - setArray(mEpisodeAdapter.size()); } private void setParseActivated(Parse item) { @@ -641,12 +645,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private boolean hasFlag() { - if (mFlagAdapter.size() > 0) return true; - mBinding.flag.setVisibility(View.GONE); - mBinding.array.setVisibility(View.GONE); - mBinding.episode.setVisibility(View.GONE); - Notify.show(R.string.error_episode); - return false; + mBinding.flag.setVisibility(mFlagAdapter.size() > 0 ? View.VISIBLE : View.GONE); + if (mFlagAdapter.size() == 0) Notify.show(R.string.error_episode); + return mFlagAdapter.size() > 0; } private void checkHistory() { diff --git a/app/src/leanback/res/layout/activity_detail.xml b/app/src/leanback/res/layout/activity_detail.xml index e97a8dfd6..afeb70ef6 100644 --- a/app/src/leanback/res/layout/activity_detail.xml +++ b/app/src/leanback/res/layout/activity_detail.xml @@ -16,7 +16,8 @@ android:background="@color/black" android:focusable="true" android:focusableInTouchMode="true" - android:foreground="@drawable/selector_video"> + android:foreground="@drawable/selector_video" + android:nextFocusDown="@id/flag"> + android:paddingBottom="8dp" />