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