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 679002341..56db18d7b 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
@@ -273,10 +273,20 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
mBinding.flag.setSelectedPosition(i);
mEpisodeAdapter.setItems(flag.getEpisodes(), null);
setGroup(flag.getEpisodes().size());
+ seamless(flag);
}
mFlagAdapter.notifyArrayItemRangeChanged(0, mFlagAdapter.size());
}
+ private void seamless(Vod.Flag flag) {
+ Vod.Flag.Episode episode = flag.find(mHistory.getVodRemarks());
+ if (episode != null) {
+ if (mPlayers.getCurrentPosition() > 0) mHistory.setPosition(mPlayers.getCurrentPosition());
+ mHistory.setVodRemarks(episode.getName());
+ setEpisodeActivated(episode.deactivated());
+ }
+ }
+
private void setEpisodeActivated(Vod.Flag.Episode item) {
if (shouldEnterFullscreen(item)) return;
mCurrent = mBinding.flag.getSelectedPosition();
@@ -358,7 +368,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
private void onKeep() {
Keep keep = Keep.find(getHistoryKey());
- Notify.show(keep != null ? "已取消收藏" : "已加入收藏");
+ Notify.show(keep != null ? R.string.detail_keep_del : R.string.detail_keep_add);
if (keep != null) keep.delete();
else createKeep();
checkKeep();
@@ -475,14 +485,12 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
}
if (mHistory != null) {
setFlagActivated(mHistory.getFlag());
- setEpisodeActivated(mHistory.getEpisode());
if (mHistory.isRevSort()) reverseEpisode();
mControl.opening.setText(mPlayers.getStringForTime(mHistory.getOpening()));
mControl.ending.setText(mPlayers.getStringForTime(mHistory.getEnding()));
} else {
mHistory = createHistory();
setFlagActivated(mHistory.getFlag());
- setEpisodeActivated(mHistory.getEpisode());
mControl.opening.setText(mPlayers.getStringForTime(0));
mControl.ending.setText(mPlayers.getStringForTime(0));
}
@@ -570,7 +578,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
break;
default:
if (!event.isRetry() || mPlayers.addRetry() > 3) onError(event.getMsg());
- else onRetry();
+ else getPlayer(false);
break;
}
}
@@ -580,17 +588,19 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
Clock.get().setCallback(this);
}
- private void onRetry() {
- mHistory.setPosition(mPlayers.getCurrentPosition());
- getPlayer(false);
- }
-
private void onError(String msg) {
- mBinding.widget.progress.getRoot().setVisibility(View.GONE);
- mBinding.widget.error.setVisibility(View.VISIBLE);
- mBinding.widget.text.setText(msg);
- Clock.get().setCallback(null);
- mPlayers.stop();
+ int position = mBinding.flag.getSelectedPosition();
+ if (position == mFlagAdapter.size() - 1) {
+ mBinding.widget.progress.getRoot().setVisibility(View.GONE);
+ mBinding.widget.error.setVisibility(View.VISIBLE);
+ mBinding.widget.text.setText(msg);
+ Clock.get().setCallback(null);
+ mPlayers.stop();
+ } else {
+ Vod.Flag flag = (Vod.Flag) mFlagAdapter.get(position + 1);
+ Notify.show(ResUtil.getString(R.string.play_switching, flag.getFlag()));
+ setFlagActivated(flag);
+ }
}
private void onPause(boolean visible) {
diff --git a/app/src/main/java/com/fongmi/android/tv/bean/History.java b/app/src/main/java/com/fongmi/android/tv/bean/History.java
index 7bb341484..10000e2c4 100644
--- a/app/src/main/java/com/fongmi/android/tv/bean/History.java
+++ b/app/src/main/java/com/fongmi/android/tv/bean/History.java
@@ -213,11 +213,11 @@ public class History {
if (getPosition() > 0) break;
for (int i = 0; i < adapter.size(); i++) {
flag = (Vod.Flag) adapter.get(i);
- String episode = flag.find(item.getVodRemarks());
- if (episode.isEmpty()) continue;
- setPosition(item.getPosition());
+ Vod.Flag.Episode episode = flag.find(item.getVodRemarks());
+ if (episode == null) continue;
setVodFlag(flag.getFlag());
- setVodRemarks(episode);
+ setPosition(item.getPosition());
+ setVodRemarks(episode.getName());
break;
}
}
diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java
index 43a182b5e..3af9eeb43 100644
--- a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java
+++ b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java
@@ -245,11 +245,11 @@ public class Vod {
else for (Episode item : getEpisodes()) item.deactivated();
}
- public String find(String remarks) {
+ public Episode find(String remarks) {
int number = Utils.getDigit(remarks);
- for (Vod.Flag.Episode item : getEpisodes()) if (number == item.getNumber()) return item.getName();
- if (getEpisodes().size() == 1) return getEpisodes().get(0).getName();
- return "";
+ for (Vod.Flag.Episode item : getEpisodes()) if (number == item.getNumber()) return item;
+ if (getEpisodes().size() == 1) return getEpisodes().get(0);
+ return null;
}
@Override
@@ -299,8 +299,9 @@ public class Vod {
return activated;
}
- private void deactivated() {
+ public Episode deactivated() {
this.activated = false;
+ return this;
}
private void setActivated(Episode item) {
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 501e037e3..f9b1abc83 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -24,6 +24,8 @@
简介:%s
简介
收藏
+ 已加入收藏
+ 已取消收藏
播放
@@ -39,6 +41,7 @@
←
已切换正序播放
已切换倒序播放
+ 正在切换线路至%s
解析
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index db53c8ed0..1636f7199 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -24,6 +24,8 @@
簡介:%s
簡介
收藏
+ 已加入收藏
+ 已取消收藏
播放
@@ -39,6 +41,7 @@
←
已切換正序播放
已切換倒序播放
+ 正在切換線路至%s
解析
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 04f2b5c7d..5b23109e1 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -24,6 +24,8 @@
Summary: %s
Summary
Keep
+ Added
+ Removed
Play
@@ -39,6 +41,7 @@
←
Normal play switched
Reverse play switched
+ Switching to %s
Parse