Support switchable

pull/123/head
FongMi 3 years ago
parent 6e93df2ee9
commit 0ca3253447
  1. 22
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  3. 12
      app/src/main/java/com/fongmi/android/tv/bean/Site.java
  4. 1
      app/src/main/res/values-zh-rCN/strings.xml
  5. 1
      app/src/main/res/values-zh-rTW/strings.xml
  6. 1
      app/src/main/res/values/strings.xml

@ -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());
}
}

@ -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 {

@ -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;
}

@ -85,6 +85,7 @@
<string name="error_play_parse">播放地址解析失败</string>
<string name="error_play_load">播放数据加载失败</string>
<string name="error_play_format">不支援的影片格式</string>
<string name="error_play_timeout">连接超时</string>
<string name="error_episode">暂无播放数据</string>
<string name="error_empty">找不到数据</string>

@ -85,6 +85,7 @@
<string name="error_play_parse">播放網址解析失敗</string>
<string name="error_play_load">播放資料載入失敗</string>
<string name="error_play_format">不支援的影片格式</string>
<string name="error_play_timeout">連線逾時</string>
<string name="error_episode">暫無播放資料</string>
<string name="error_empty">找不到資料</string>

@ -85,6 +85,7 @@
<string name="error_play_parse">Unable to parse url</string>
<string name="error_play_load">Unable to load url</string>
<string name="error_play_format">Unsupported video format</string>
<string name="error_play_timeout">Timed out</string>
<string name="error_episode">No episode data</string>
<string name="error_empty">Not found</string>

Loading…
Cancel
Save