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 f3ac3b2c7..3c002fde1 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 @@ -43,7 +43,6 @@ import com.fongmi.android.tv.bean.Flag; import com.fongmi.android.tv.bean.History; import com.fongmi.android.tv.bean.Keep; import com.fongmi.android.tv.bean.Parse; -import com.fongmi.android.tv.bean.Part; import com.fongmi.android.tv.bean.Result; import com.fongmi.android.tv.bean.Site; import com.fongmi.android.tv.bean.Sub; @@ -81,6 +80,7 @@ import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.Sniffer; import com.fongmi.android.tv.utils.Traffic; +import com.fongmi.android.tv.utils.Util; import com.github.bassaer.library.MDColor; import com.github.catvod.utils.Trans; import com.permissionx.guolindev.PermissionX; @@ -459,13 +459,13 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List setText(mBinding.content, R.string.detail_content, item.getVodContent()); setText(mBinding.director, R.string.detail_director, item.getVodDirector()); mFlagAdapter.setItems(item.getVodFlags(), null); - setPartAdapter(Part.get(item.getVodName())); mBinding.content.setMaxLines(getMaxLines()); mBinding.video.requestFocus(); App.removeCallbacks(mR4); checkHistory(item); checkFlag(item); - checkKeep(); + checkKeepImg(); + updateKeep(); } private int getMaxLines() { @@ -679,7 +679,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List if (keep != null) keep.delete(); else createKeep(); RefreshEvent.keep(); - checkKeep(); + checkKeepImg(); } private void onVideo() { @@ -928,9 +928,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List }); } - private void setPartAdapter(List items) { + private void setPartAdapter() { + mPartAdapter.setItems(Util.getPart(mHistory.getVodName()), null); mBinding.part.setVisibility(View.VISIBLE); - mPartAdapter.setItems(items, null); setR2Callback(); } @@ -956,6 +956,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List mHistory.setVodName(item.getVodName()); mHistory.setVodPic(item.getVodPic()); setScale(getScale()); + setPartAdapter(); setArtwork(); } @@ -980,7 +981,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List ActionEvent.update(); } - private void checkKeep() { + private void checkKeepImg() { mBinding.keep.setCompoundDrawablesWithIntrinsicBounds(Keep.find(getHistoryKey()) == null ? R.drawable.ic_detail_keep_off : R.drawable.ic_detail_keep_on, 0, 0, 0); } @@ -995,6 +996,15 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List keep.save(); } + private void updateKeep() { + Keep keep = Keep.find(getHistoryKey()); + if (keep != null) { + keep.setVodName(mHistory.getVodName()); + keep.setVodPic(mHistory.getVodPic()); + keep.save(); + } + } + private void updateVod(Vod item) { mHistory.setVodPic(item.getVodPic()); mHistory.setVodName(item.getVodName()); @@ -1003,7 +1013,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List setText(mBinding.content, R.string.detail_content, item.getVodContent()); setText(mBinding.director, R.string.detail_director, item.getVodDirector()); mBinding.content.setMaxLines(getMaxLines()); + setPartAdapter(); setArtwork(); + updateKeep(); } @Override diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Part.java b/app/src/main/java/com/fongmi/android/tv/bean/Part.java deleted file mode 100644 index 4efbf2e3a..000000000 --- a/app/src/main/java/com/fongmi/android/tv/bean/Part.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.fongmi.android.tv.bean; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class Part { - - public static List get(String source) { - List items = new ArrayList<>(); - items.add(source.trim()); - if (source.contains(":")) { - for (String split : source.split(":")) items.add(split.trim().contains(" ") ? split.split(" ")[0].trim() : split.trim()); - } else if (source.contains("第") && source.contains("季")) { - for (String split : source.split("第")) if (!split.isEmpty() && !split.contains("季")) items.add(split.trim().contains(" ") ? split.split(" ")[0].trim() : split.trim()); - } else if (source.contains("(")) { - items.add(source.split("\\(")[0].trim()); - } else if (source.contains(" ")) { - items.addAll(Arrays.asList(source.split(" "))); - } - return items; - } -} diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Util.java b/app/src/main/java/com/fongmi/android/tv/utils/Util.java index 6a3a8ba1c..3e8b02a76 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Util.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Util.java @@ -27,6 +27,7 @@ import com.github.catvod.utils.Shell; import java.net.NetworkInterface; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Formatter; import java.util.List; @@ -99,6 +100,27 @@ public class Util { } } + public static List getPart(String text) { + List items = new ArrayList<>(); + String[] splits = new String[0]; + items.add(text); + if (text.contains(":")) { + splits = text.split(":"); + } else if (text.contains("第") && text.contains("季")) { + splits = Arrays.stream(text.split("第")).filter(s -> !s.isEmpty() && !s.contains("季")).toArray(String[]::new); + } else if (text.contains("(")) { + splits = new String[]{text.split("\\(")[0]}; + } else if (text.contains(" ")) { + splits = text.split(" "); + } + for (String s : splits) { + s = s.trim(); + if (s.contains(" ")) s = s.split(" ")[0].trim(); + if (!s.isEmpty()) items.add(s); + } + return items; + } + public static String clean(String text) { StringBuilder sb = new StringBuilder(); text = Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY).toString().replace("\u00A0", "").replace("\u3000", ""); 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 645642455..db782e572 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 @@ -478,6 +478,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo checkHistory(item); checkFlag(item); checkKeepImg(); + updateKeep(); } private void setText(TextView view, int resId, String text) { @@ -1071,6 +1072,15 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo keep.save(); } + private void updateKeep() { + Keep keep = Keep.find(getHistoryKey()); + if (keep != null) { + keep.setVodName(mHistory.getVodName()); + keep.setVodPic(mHistory.getVodPic()); + keep.save(); + } + } + private void updateVod(Vod item) { mHistory.setVodPic(item.getVodPic()); mHistory.setVodName(item.getVodName()); @@ -1080,6 +1090,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo setText(mBinding.director, R.string.detail_director, item.getVodDirector()); mBinding.contentLayout.setVisibility(mBinding.content.getVisibility()); setArtwork(); + updateKeep(); } @Override