From e620faea0a216e0650d1a3de71f3814603065c4f Mon Sep 17 00:00:00 2001 From: FongMi Date: Sat, 11 Feb 2023 21:57:07 +0800 Subject: [PATCH] Add auto parse back --- .../tv/ui/activity/DetailActivity.java | 33 +++++++++++++++++-- app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index f3920fdbb..23ba86470 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -147,6 +147,11 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis return 0; } + private int getParsePosition() { + for (int i = 0; i < mParseAdapter.size(); i++) if (((Parse) mParseAdapter.get(i)).isActivated()) return i; + return 0; + } + private int getPlayerType() { return mHistory != null && mHistory.getPlayer() != -1 ? mHistory.getPlayer() : getSite().getPlayerType() != -1 ? getSite().getPlayerType() : Prefers.getPlayer(); } @@ -797,11 +802,29 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis showError(event.getMsg()); mPlayers.stop(); hideProgress(); - statFlow(); + startFlow(); } - private void statFlow() { + private void startFlow() { if (!getSite().isSwitchable()) return; + if (isVisible(mBinding.control.parseLayout)) checkParse(); + else checkFlag(); + } + + private void checkParse() { + int position = getParsePosition(); + if (position == mParseAdapter.size() - 1) initParse(); + if (position == 0 || position == mParseAdapter.size() - 1) checkFlag(); + else nextParse(position); + } + + private void initParse() { + if (mParseAdapter.size() == 0) return; + ApiConfig.get().setParse((Parse) mParseAdapter.get(0)); + notifyItemChanged(mBinding.control.parse, mParseAdapter); + } + + private void checkFlag() { int position = mBinding.flag.getSelectedPosition(); if (position == mFlagAdapter.size() - 1) checkSearch(); else nextFlag(position); @@ -855,6 +878,12 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis else return !item.getVodName().contains(keyword); } + private void nextParse(int position) { + Parse parse = (Parse) mParseAdapter.get(position + 1); + Notify.show(getString(R.string.play_switch_parse, parse.getName())); + setParseActivated(parse); + } + private void nextFlag(int position) { Vod.Flag flag = (Vod.Flag) mFlagAdapter.get(position + 1); Notify.show(getString(R.string.play_switch_flag, flag.getFlag())); diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index cc5874488..d2f196118 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -49,6 +49,7 @@ 已切换正序播放 已切换倒序播放 + 正在切换解析至「%s 正在切换线路至「%s 正在切换站源至「%s diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 495714230..c15178d76 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -49,6 +49,7 @@ 已切換正序播放 已切換倒序播放 + 正在切换解析至「%s 正在切換線路至「%s 正在切換站源至「%s diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e48c06b1d..cf94a147b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -49,6 +49,7 @@ Normal play switched Reverse play switched + Switching parse to %s Switching flag to %s Switching site to %s