Optimize seek view

pull/362/head
FongMi 2 years ago
parent 5dc29d539c
commit ecb0a503d3
  1. 1
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  3. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  4. 22
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomSeekView.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  6. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.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:

@ -637,6 +637,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void fetch() {
if (mChannel == null) return;
LiveConfig.get().setKeep(mChannel);
mBinding.control.seek.reset();
mViewModel.getUrl(mChannel);
mPlayers.clear();
showProgress();
@ -711,6 +712,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
switch (event.getState()) {
case 0:
setTrackVisible(false);
mBinding.control.seek.start();
break;
case Player.STATE_IDLE:
break;

@ -822,6 +822,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);
@ -1154,6 +1155,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;

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

@ -690,6 +690,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
private void fetch() {
if (mChannel == null) return;
LiveConfig.get().setKeep(mChannel);
mBinding.control.seek.reset();
mViewModel.getUrl(mChannel);
mPlayers.clear();
showProgress();
@ -775,6 +776,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
switch (event.getState()) {
case 0:
setTrackVisible(false);
mBinding.control.seek.start();
break;
case Player.STATE_IDLE:
break;

@ -813,6 +813,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);
@ -1173,6 +1174,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;

Loading…
Cancel
Save