diff --git a/app/src/main/java/com/github/tvbox/osc/bean/VodInfo.java b/app/src/main/java/com/github/tvbox/osc/bean/VodInfo.java index 8332474e..2d15e38c 100644 --- a/app/src/main/java/com/github/tvbox/osc/bean/VodInfo.java +++ b/app/src/main/java/com/github/tvbox/osc/bean/VodInfo.java @@ -100,12 +100,19 @@ public class VodInfo implements Serializable { return 0; } private boolean isReverse(List list) { - // 循环比较相邻元素 - for (int i = 0; i < Math.min(list.size()-1,4); i++) { + int ascCount = 0, descCount = 0; + // 比较最多前 6 个相邻元素对 + int limit = Math.min(list.size() - 1, 6); + for (int i = 0; i < limit; i++) { int current = extractNumber(list.get(i).name); int next = extractNumber(list.get(i + 1).name); - if (current < next) return false; - if (current > next) return true; + if (current < next) { + ascCount++; + if (ascCount == 2) return false; + } else if (current > next) { + descCount++; + if (descCount == 2) return true; + } } return false; } diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java index 1dcdcaad..39998225 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/DetailActivity.java @@ -354,16 +354,16 @@ public class DetailActivity extends BaseActivity { public void onItemClick(TvRecyclerView parent, View itemView, int position) { } }); - mGridView.setOnFocusChangeListener(new View.OnFocusChangeListener() { - @Override - public void onFocusChange(View v, boolean hasFocus) { - if (hasFocus && vodInfo.playIndex != -1) { - // 当获得焦点且有目标位置时,执行滚动和聚焦 - LOG.i("echo-onFocusChange"); - mGridView.setSelection(vodInfo.playIndex); - } - } - }); +// mGridView.setOnFocusChangeListener(new View.OnFocusChangeListener() { +// @Override +// public void onFocusChange(View v, boolean hasFocus) { +// if (hasFocus && vodInfo.playIndex != -1) { +// // 当获得焦点且有目标位置时,执行滚动和聚焦 +// LOG.i("echo-onFocusChange"); +// mGridView.setSelection(vodInfo.playIndex); +// } +// } +// }); mGridViewFlag.setOnItemListener(new TvRecyclerView.OnItemListener() { private void refresh(View itemView, int position) { String newFlag = seriesFlagAdapter.getData().get(position).name; @@ -457,7 +457,7 @@ public class DetailActivity extends BaseActivity { TextView txtView = itemView.findViewById(R.id.tvSeriesGroup); txtView.setTextColor(mContext.getResources().getColor(R.color.color_02F8E1)); if (vodInfo != null && vodInfo.seriesMap.get(vodInfo.playFlag).size() > 0) { - int targetPos = position * GroupCount+1; + int targetPos = position * GroupCount; mGridView.smoothScrollToPosition(targetPos); } currentSeriesGroupView = itemView; diff --git a/app/src/main/java/com/github/tvbox/osc/ui/adapter/SeriesFlagAdapter.java b/app/src/main/java/com/github/tvbox/osc/ui/adapter/SeriesFlagAdapter.java index d0854008..2e4a9e13 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/adapter/SeriesFlagAdapter.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/adapter/SeriesFlagAdapter.java @@ -1,5 +1,6 @@ package com.github.tvbox.osc.ui.adapter; +import android.app.Activity; import android.view.View; import android.widget.TextView; @@ -30,5 +31,11 @@ public class SeriesFlagAdapter extends BaseQuickAdapter