Merge remote-tracking branch 'origin/dev' into dev

pull/307/head
okjack 2 years ago
commit b0ae9fd7ff
  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. 40
      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,7 +318,6 @@ 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,7 +612,6 @@ 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();
@ -689,7 +688,6 @@ 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;

@ -922,7 +922,6 @@ 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);
@ -1287,7 +1286,6 @@ 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;

@ -26,7 +26,7 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
private TextView durationView;
private DefaultTimeBar timeBar;
private Runnable runnable;
private Runnable refresh;
private Players player;
private long currentDuration;
@ -46,35 +46,27 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
super(context, attrs, defStyleAttr);
LayoutInflater.from(context).inflate(R.layout.view_control_seek, this);
init();
start();
}
private void init() {
timeBar = findViewById(R.id.timeBar);
positionView = findViewById(R.id.position);
durationView = findViewById(R.id.duration);
runnable = this::updateProgress;
timeBar = findViewById(R.id.timeBar);
timeBar.addListener(this);
reset();
refresh = this::refresh;
}
public void setListener(Players player) {
this.player = player;
}
public void reset() {
timeBar.setPosition(0);
timeBar.setDuration(0);
removeCallbacks(runnable);
positionView.setText("00:00");
durationView.setText("00:00");
private void start() {
removeCallbacks(refresh);
post(refresh);
}
public void start() {
removeCallbacks(runnable);
post(runnable);
}
private void updateProgress() {
private void refresh() {
if (player.isRelease()) return;
long duration = player.getDuration();
long position = player.getPosition();
@ -97,11 +89,17 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
if (bufferedChanged) {
timeBar.setBufferedPosition(buffered);
}
removeCallbacks(runnable);
if (player.isEmpty()) {
timeBar.setPosition(0);
timeBar.setDuration(0);
positionView.setText("00:00");
durationView.setText("00:00");
}
removeCallbacks(refresh);
if (player.isPlaying()) {
postDelayed(runnable, delayMs(position));
postDelayed(refresh, delayMs(position));
} else {
postDelayed(runnable, MAX_UPDATE_INTERVAL_MS);
postDelayed(refresh, MAX_UPDATE_INTERVAL_MS);
}
}
@ -132,13 +130,13 @@ public class CustomSeekView extends FrameLayout implements TimeBar.OnScrubListen
private void seekToTimeBarPosition(long positionMs) {
player.seekTo(positionMs);
updateProgress();
refresh();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
removeCallbacks(runnable);
removeCallbacks(refresh);
}
@Override

@ -661,7 +661,6 @@ 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();
@ -749,7 +748,6 @@ 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;

@ -842,7 +842,6 @@ 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);
@ -1244,7 +1243,6 @@ 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