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 13b02cc2a..56e65b8e6 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
@@ -601,11 +601,13 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
Traffic.reset();
}
- private void showError() {
+ private void showError(String text) {
+ mBinding.widget.text.setText(text);
mBinding.widget.error.setVisibility(View.VISIBLE);
}
private void hideError() {
+ mBinding.widget.text.setText("");
mBinding.widget.error.setVisibility(View.GONE);
}
@@ -766,7 +768,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
checkNext();
break;
default:
- App.removeCallbacks(mR4);
if (!event.isRetry() || mPlayers.addRetry() > 3) onError(event.getMsg());
else getPlayer(false);
break;
@@ -792,18 +793,21 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
}
private void onError() {
- onError("");
+ onError(getString(R.string.error_play_timeout));
}
private void onError(String msg) {
- int position = mBinding.flag.getSelectedPosition();
+ showError(msg);
+ hideProgress();
+ App.removeCallbacks(mR4);
+ Clock.get().setCallback(null);
+ checkNext(mBinding.flag.getSelectedPosition());
+ }
+
+ private void checkNext(int position) {
if (position == mFlagAdapter.size() - 1) {
- mBinding.widget.text.setText(msg);
- Clock.get().setCallback(null);
mPlayers.stop();
- hideProgress();
checkSearch();
- showError();
} else {
mPlayers.reset();
nextFlag(position);
@@ -814,7 +818,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
if (mSearchAdapter.size() > 0 && isAutoMode()) {
nextSite();
} else {
- initSearch(getName(), true);
+ initSearch(getName(), getSite().isSwitchable());
}
}
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
index 6b3cd1ac4..45c24e00e 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
@@ -477,6 +477,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void getUrl() {
mViewModel.getUrl(mChannel);
+ setR6Callback();
showProgress();
}
@@ -646,7 +647,6 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
public void onPlayerEvent(PlayerEvent event) {
switch (event.getState()) {
case 0:
- setR6Callback();
setTrackVisible(false);
break;
case Player.STATE_IDLE:
@@ -664,7 +664,6 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
onKeyDown();
break;
default:
- App.removeCallbacks(mR6);
if (!event.isRetry() || mPlayers.addRetry() > 3) onError();
else getUrl();
break;
@@ -677,7 +676,12 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
}
private void onError() {
+ App.removeCallbacks(mR6);
mPlayers.reset();
+ checkNext();
+ }
+
+ private void checkNext() {
if (mChannel.isOnly()) {
if (isGone(mBinding.recycler)) onKeyDown();
} else {
diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Site.java b/app/src/main/java/com/fongmi/android/tv/bean/Site.java
index 0c06eabc3..41493e172 100644
--- a/app/src/main/java/com/fongmi/android/tv/bean/Site.java
+++ b/app/src/main/java/com/fongmi/android/tv/bean/Site.java
@@ -15,7 +15,7 @@ import com.google.gson.annotations.SerializedName;
import java.util.Collections;
import java.util.List;
-@Entity(ignoredColumns = {"type", "api", "playUrl", "playerType", "ext", "jar", "categories"})
+@Entity(ignoredColumns = {"type", "api", "playUrl", "playerType", "switchable", "ext", "jar", "categories"})
public class Site {
@NonNull
@@ -36,6 +36,8 @@ public class Site {
private Integer searchable;
@SerializedName("filterable")
private Integer filterable;
+ @SerializedName("switchable")
+ private Integer switchable;
@SerializedName("ext")
private String ext;
@SerializedName("jar")
@@ -122,6 +124,10 @@ public class Site {
this.filterable = filterable;
}
+ public Integer getSwitchable() {
+ return switchable == null ? 0 : switchable;
+ }
+
public String getExt() {
return TextUtils.isEmpty(ext) ? "" : ext;
}
@@ -150,6 +156,10 @@ public class Site {
this.activated = item.equals(this);
}
+ public boolean isSwitchable() {
+ return getSwitchable() == 1;
+ }
+
public boolean isSearchable() {
return getSearchable() == 1;
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 767f267ff..cca3f2484 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -85,6 +85,7 @@
播放地址解析失败
播放数据加载失败
不支援的影片格式
+ 连接超时
暂无播放数据
找不到数据
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 7493bbe97..fb361540e 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -85,6 +85,7 @@
播放網址解析失敗
播放資料載入失敗
不支援的影片格式
+ 連線逾時
暫無播放資料
找不到資料
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2565d95bb..bf1a73bf7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -85,6 +85,7 @@
Unable to parse url
Unable to load url
Unsupported video format
+ Timed out
No episode data
Not found