diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java index aa62875f3..cf637989c 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java @@ -318,6 +318,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List case 0: setTrackVisible(false); mClock.setCallback(this); + mBinding.control.seek.start(); setState(RenderState.PREPARING); break; case Player.STATE_IDLE: 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 eb233af3e..b720654ea 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 @@ -612,6 +612,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP private void fetch() { if (mChannel == null) return; LiveConfig.get().setKeep(mChannel); + mBinding.control.seek.reset(); mViewModel.getUrl(mChannel); mPlayers.clear(); showProgress(); @@ -688,6 +689,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, GroupP case 0: setTrackVisible(false); mClock.setCallback(this); + mBinding.control.seek.start(); break; case Player.STATE_IDLE: break; diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 2d68720cc..e03f698f3 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -912,6 +912,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private void onReset(boolean replay) { mClock.setCallback(null); + mBinding.control.seek.reset(); if (mFlagAdapter.size() == 0) return; if (mEpisodeAdapter.size() == 0) return; getPlayer(getFlag(), getEpisode(), replay); @@ -1273,6 +1274,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List setInitTrack(true); setTrackVisible(false); mClock.setCallback(this); + mBinding.control.seek.start(); break; case Player.STATE_IDLE: break; diff --git a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java index 056fa3e31..f307cd2a5 100644 --- a/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java +++ b/app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java @@ -45,25 +45,19 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen public CustomSeekView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); LayoutInflater.from(context).inflate(R.layout.view_control_seek, this); - initView(); - initEvent(); - start(); + init(); } - private void initView() { + private void init() { + timeBar = findViewById(R.id.timeBar); positionView = findViewById(R.id.position); durationView = findViewById(R.id.duration); - timeBar = findViewById(R.id.timeBar); runnable = this::updateProgress; - } - - private void initEvent() { timeBar.addListener(this); + reset(); } public void setListener(Players player) { - positionView.setText(player.stringToTime(0)); - durationView.setText(player.stringToTime(0)); this.player = player; } @@ -77,6 +71,14 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen post(runnable); } + public void reset() { + timeBar.setPosition(0); + timeBar.setDuration(0); + removeCallbacks(runnable); + positionView.setText(player.stringToTime(0)); + durationView.setText(player.stringToTime(0)); + } + private void updateProgress() { if (player.isRelease()) return; long duration = player.getDuration(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 215315c31..23805bcf8 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -661,6 +661,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, Custom private void fetch() { if (mChannel == null) return; LiveConfig.get().setKeep(mChannel); + mBinding.control.seek.reset(); mViewModel.getUrl(mChannel); mPlayers.clear(); showProgress(); @@ -748,6 +749,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, Custom case 0: setTrackVisible(false); mClock.setCallback(this); + mBinding.control.seek.start(); break; case Player.STATE_IDLE: break; diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 93242864d..3afc701fe 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -840,6 +840,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private void onReset(boolean replay) { mClock.setCallback(null); + mBinding.control.seek.reset(); if (mFlagAdapter.isEmpty()) return; if (mEpisodeAdapter.isEmpty()) return; getPlayer(getFlag(), getEpisode(), replay); @@ -1236,6 +1237,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo setInitTrack(true); setTrackVisible(false); mClock.setCallback(this); + mBinding.control.seek.start(); break; case Player.STATE_IDLE: break;