From 42268ba0a9a3a4af870f08beb67925d7253a39c6 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 19 Oct 2023 23:05:01 +0800 Subject: [PATCH] Clean code --- .../android/tv/ui/activity/HomeActivity.java | 2 +- .../android/tv/ui/activity/VideoActivity.java | 22 ++++++++---------- .../android/tv/ui/custom/CustomMovement.java | 14 ----------- .../android/tv/ui/activity/VideoActivity.java | 23 ++++++++----------- 4 files changed, 20 insertions(+), 41 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index 7662bb71a..7eb1e63a9 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -202,7 +202,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen private void addVideo(Result result) { Style style = result.getStyle(getHome().getStyle()); - for (List items : Lists.partition(result.getList(), Product.getColumn())) { + for (List items : Lists.partition(result.getList(), Product.getColumn(style))) { ArrayObjectAdapter adapter = new ArrayObjectAdapter(new VodPresenter(this, style)); adapter.setItems(items, null); mAdapter.add(new ListRow(adapter)); 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 8edfe8e0d..7bd530d2a 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 @@ -535,30 +535,26 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private SpannableString getSpan(int resId, String text) { if (resId > 0) text = getString(resId, text); Map map = new HashMap<>(); - text = findClicker(text, map); - SpannableString span = new SpannableString(text); - for (String s : map.keySet()) { - int index = text.indexOf(s); - span.setSpan(getClickableSpan(map.get(s)), index, index + s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } - return span; - } - - private String findClicker(String text, Map map) { Matcher m = Sniffer.CLICKER.matcher(text); while (m.find()) { String key = Trans.s2t(m.group(2)).trim(); text = text.replace(m.group(), key); map.put(key, m.group(1)); } - return text; + SpannableString span = new SpannableString(text); + for (String s : map.keySet()) { + int index = text.indexOf(s); + Result result = Result.type(map.get(s)); + span.setSpan(getClickSpan(result), index, index + s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + return span; } - private ClickableSpan getClickableSpan(String json) { + private ClickableSpan getClickSpan(Result result) { return new ClickableSpan() { @Override public void onClick(@NonNull View view) { - VodActivity.start(getActivity(), getKey(), Result.type(json)); + VodActivity.start(getActivity(), getKey(), result); } }; } diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomMovement.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomMovement.java index 8827df1dc..e76e8701f 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomMovement.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomMovement.java @@ -6,8 +6,6 @@ import android.text.Layout; import android.text.NoCopySpan; import android.text.Selection; import android.text.Spannable; -import android.text.SpannableString; -import android.text.Spanned; import android.text.method.ScrollingMovementMethod; import android.text.style.ClickableSpan; import android.view.KeyEvent; @@ -15,18 +13,6 @@ import android.view.MotionEvent; import android.view.View; import android.widget.TextView; -import androidx.annotation.NonNull; - -import com.fongmi.android.tv.bean.Result; -import com.fongmi.android.tv.ui.activity.FolderActivity; -import com.fongmi.android.tv.utils.ResUtil; -import com.fongmi.android.tv.utils.Sniffer; -import com.github.catvod.utils.Trans; - -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Matcher; - public class CustomMovement extends ScrollingMovementMethod { private static final int CLICK = 1; 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 5c155f591..67162fe22 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 @@ -514,30 +514,27 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private SpannableString getSpan(int resId, String text) { if (resId > 0) text = getString(resId, text); Map map = new HashMap<>(); - text = findClicker(text, map); - SpannableString span = new SpannableString(text); - for (String s : map.keySet()) { - int index = text.indexOf(s); - span.setSpan(getClickableSpan(map.get(s)), index, index + s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } - return span; - } - - private String findClicker(String text, Map map) { Matcher m = Sniffer.CLICKER.matcher(text); while (m.find()) { String key = Trans.s2t(m.group(2)).trim(); text = text.replace(m.group(), key); map.put(key, m.group(1)); } - return text; + SpannableString span = new SpannableString(text); + for (String s : map.keySet()) { + int index = text.indexOf(s); + Result result = Result.type(map.get(s)); + span.setSpan(getClickSpan(result), index, index + s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + } + return span; } - private ClickableSpan getClickableSpan(String json) { + private ClickableSpan getClickSpan(Result result) { return new ClickableSpan() { @Override public void onClick(@NonNull View view) { - FolderActivity.start(getActivity(), getKey(), Result.type(json)); + FolderActivity.start(getActivity(), getKey(), result); + ((TextView) view).setMaxLines(Integer.MAX_VALUE); setRedirect(true); } };