okjack
FongMi 3 years ago
parent 0983fab637
commit 42268ba0a9
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 22
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  3. 14
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomMovement.java
  4. 23
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.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<Vod> items : Lists.partition(result.getList(), Product.getColumn())) {
for (List<Vod> 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));

@ -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<String, String> 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<String, String> 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);
}
};
}

@ -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;

@ -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<String, String> 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<String, String> 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);
}
};

Loading…
Cancel
Save