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 165eec431..56bbd1ddb 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 @@ -283,6 +283,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mViewModel.player.observe(this, result -> { boolean useParse = (result.getPlayUrl().isEmpty() && ApiConfig.get().getFlags().contains(result.getFlag())) || result.getJx() == 1; mBinding.control.parseLayout.setVisibility(mParseAdapter.size() > 0 && useParse ? View.VISIBLE : View.GONE); + mPlayers.setTimeout(getSite().isSwitchable() ? Constant.TIMEOUT_PLAY : -1); mPlayers.start(result, useParse); resetFocus(); }); @@ -669,9 +670,11 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private boolean hasFlag() { mBinding.flag.setVisibility(mFlagAdapter.size() > 0 ? View.VISIBLE : View.GONE); - if (mFlagAdapter.size() == 0) Notify.show(R.string.error_episode); - if (mFlagAdapter.size() == 0) initSearch(getName(), true); - return mFlagAdapter.size() > 0; + if (mFlagAdapter.size() > 0) return true; + Notify.show(R.string.error_episode); + initSearch(getName(), true); + hideProgress(); + return false; } private void checkHistory() { diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 233103450..94ecfc7f3 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -39,8 +39,9 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM private Formatter formatter; private ParseTask parseTask; private ExoPlayer exoPlayer; - private Runnable timeout; + private Runnable runnable; private int errorCode; + private int timeout; private int retry; private int decode; private int player; @@ -56,8 +57,9 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM public Players init() { player = Prefers.getPlayer(); decode = Prefers.getDecode(); - timeout = ErrorEvent::timeout; builder = new StringBuilder(); + runnable = ErrorEvent::timeout; + timeout = Constant.TIMEOUT_PLAY; formatter = new Formatter(builder, Locale.getDefault()); return this; } @@ -116,10 +118,6 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM stopParse(); } - public int getRetry() { - return retry; - } - public int addRetry() { ++retry; return retry; @@ -264,6 +262,10 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM } } + public void setTimeout(int timeout) { + this.timeout = timeout; + } + public void start(Channel channel) { if (channel.getUrl().isEmpty()) { ErrorEvent.url(); @@ -342,12 +344,12 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM } private void setTimeoutCheck() { - App.post(timeout, Constant.TIMEOUT_PLAY); + if (timeout > 0) App.post(runnable, timeout); PlayerEvent.state(0); } private void removeTimeoutCheck() { - App.removeCallbacks(timeout); + App.removeCallbacks(runnable); } private void setTrack(Track item) {