Optimize seek view

pull/265/head
FongMi 2 years ago
parent 2e3bdbdd9b
commit b568aafd04
  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:

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

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

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

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

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

Loading…
Cancel
Save