From 6a646575d50c97571a17544e5c4fd6d1957149d3 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 22 Jan 2026 12:55:11 +0800 Subject: [PATCH] Support more vod data upadte --- .../android/tv/ui/activity/VideoActivity.java | 18 +++++++++---- .../android/tv/ui/activity/VideoActivity.java | 25 +++++++++++++------ 2 files changed, 30 insertions(+), 13 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 0354d6ff8..e4357c6e4 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 @@ -450,9 +450,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List setText(mBinding.area, R.string.detail_area, item.getArea()); setText(mBinding.type, R.string.detail_type, item.getTypeName()); setText(mBinding.site, R.string.detail_site, getSite().getName()); - setText(mBinding.actor, R.string.detail_actor, item.getActor()); setText(mBinding.content, R.string.detail_content, item.getContent()); setText(mBinding.director, R.string.detail_director, item.getDirector()); + setText(mBinding.actor, R.string.detail_actor, item.getActor()); mFlagAdapter.setItems(item.getFlags(), null); mBinding.content.setMaxLines(getMaxLines()); mBinding.video.requestFocus(); @@ -472,6 +472,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void setText(TextView view, int resId, String text) { + if (TextUtils.isEmpty(text) && !TextUtils.isEmpty(view.getText())) return; view.setText(getSpan(resId, text), TextView.BufferType.SPANNABLE); view.setVisibility(text.isEmpty() ? View.GONE : View.VISIBLE); view.setLinkTextColor(MDColor.YELLOW_500); @@ -1015,12 +1016,19 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void updateVod(Vod item) { - mHistory.setVodPic(item.getPic()); - mHistory.setVodName(item.getName()); - mBinding.name.setText(item.getName()); - mBinding.widget.title.setText(item.getName()); + boolean pic = !item.getPic().isEmpty(); + boolean name = !item.getName().isEmpty(); + if (pic) mHistory.setVodPic(item.getPic()); + if (name) mHistory.setVodName(item.getName()); + if (name) mBinding.name.setText(item.getName()); + if (name) mBinding.widget.title.setText(item.getName()); + setText(mBinding.year, R.string.detail_year, item.getYear()); + setText(mBinding.area, R.string.detail_area, item.getArea()); + setText(mBinding.type, R.string.detail_type, item.getTypeName()); setText(mBinding.content, R.string.detail_content, item.getContent()); setText(mBinding.director, R.string.detail_director, item.getDirector()); + setText(mBinding.actor, R.string.detail_actor, item.getActor()); + setText(mBinding.remark, 0, item.getRemarks()); mBinding.content.setMaxLines(getMaxLines()); setPartAdapter(); updateKeep(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 8a56f9f65..bb1845023 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -480,9 +480,8 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo setText(mBinding.remark, 0, item.getRemarks()); setText(mBinding.content, 0, item.getContent()); setText(mBinding.site, R.string.detail_site, getSite().getName()); - setText(mBinding.actor, R.string.detail_actor, item.getActor()); setText(mBinding.director, R.string.detail_director, item.getDirector()); - mBinding.contentLayout.setVisibility(mBinding.content.getVisibility()); + setText(mBinding.actor, R.string.detail_actor, item.getActor()); mFlagAdapter.addAll(item.getFlags()); setOther(mBinding.other, item); App.removeCallbacks(mR4); @@ -493,12 +492,18 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } private void setText(TextView view, int resId, String text) { + if (TextUtils.isEmpty(text) && !TextUtils.isEmpty(view.getText())) return; view.setText(getSpan(resId, text), TextView.BufferType.SPANNABLE); view.setVisibility(text.isEmpty() ? View.GONE : View.VISIBLE); + if (view == mBinding.content) setContentVisible(); view.setLinkTextColor(MDColor.YELLOW_500); CustomMovement.bind(view); } + private void setContentVisible() { + mBinding.contentLayout.setVisibility(mBinding.content.getVisibility()); + } + private SpannableStringBuilder getSpan(int resId, String text) { if (resId > 0) text = getString(resId, text); Map map = new HashMap<>(); @@ -1113,13 +1118,17 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } private void updateVod(Vod item) { - mHistory.setVodPic(item.getPic()); - mHistory.setVodName(item.getName()); - mBinding.name.setText(item.getName()); - mBinding.control.title.setText(item.getName()); - setText(mBinding.content, 0, item.getContent()); + boolean pic = !item.getPic().isEmpty(); + boolean name = !item.getName().isEmpty(); + if (pic) mHistory.setVodPic(item.getPic()); + if (name) mHistory.setVodName(item.getName()); + if (name) mBinding.name.setText(item.getName()); + if (name) mBinding.control.title.setText(item.getName()); setText(mBinding.director, R.string.detail_director, item.getDirector()); - mBinding.contentLayout.setVisibility(mBinding.content.getVisibility()); + setText(mBinding.actor, R.string.detail_actor, item.getActor()); + setText(mBinding.content, 0, item.getContent()); + setText(mBinding.remark, 0, item.getRemarks()); + setOther(mBinding.other, item); updateKeep(); setArtwork(); setMetadata();