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 413e4e4c8..b3c2428b5 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 @@ -284,8 +284,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); + mPlayers.start(result, useParse, getSite().isSwitchable() ? Constant.TIMEOUT_PLAY : -1); resetFocus(); }); mViewModel.result.observe(this, result -> { diff --git a/app/src/main/java/com/fongmi/android/tv/App.java b/app/src/main/java/com/fongmi/android/tv/App.java index 3e697150a..caae01f42 100644 --- a/app/src/main/java/com/fongmi/android/tv/App.java +++ b/app/src/main/java/com/fongmi/android/tv/App.java @@ -48,7 +48,7 @@ public class App extends Application { public static void post(Runnable runnable, long delayMillis) { get().handler.removeCallbacks(runnable); - get().handler.postDelayed(runnable, delayMillis); + if (delayMillis >= 0) get().handler.postDelayed(runnable, delayMillis); } public static void removeCallbacks(Runnable runnable) { 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 94ecfc7f3..5fd65dcbb 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 @@ -262,10 +262,6 @@ 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(); @@ -274,13 +270,14 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM } } - public void start(Result result, boolean useParse) { + public void start(Result result, boolean useParse, int timeout) { if (result.getUrl().isEmpty()) { ErrorEvent.url(); } else if (result.getParse(1) == 1 || result.getJx() == 1) { stopParse(); parseTask = ParseTask.create(this).run(result, useParse); } else { + this.timeout = timeout; setMediaSource(result); } } @@ -344,7 +341,7 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM } private void setTimeoutCheck() { - if (timeout > 0) App.post(runnable, timeout); + App.post(runnable, timeout); PlayerEvent.state(0); }