Fixed progress bar not completing after video end

This commit is contained in:
litetex 2021-09-26 20:50:24 +02:00
parent c1f7b2653c
commit 22847c6c92

View file

@ -1596,10 +1596,7 @@ public final class Player implements
setVideoDurationToControls(duration); setVideoDurationToControls(duration);
} }
if (currentState != STATE_PAUSED) { if (currentState != STATE_PAUSED) {
if (currentState != STATE_PAUSED_SEEK) { updatePlayBackElementsCurrentDuration(currentProgress);
binding.playbackSeekBar.setProgress(currentProgress);
}
binding.playbackCurrentTime.setText(getTimeString(currentProgress));
} }
if (simpleExoPlayer.isLoading() || bufferPercent > 90) { if (simpleExoPlayer.isLoading() || bufferPercent > 90) {
binding.playbackSeekBar.setSecondaryProgress( binding.playbackSeekBar.setSecondaryProgress(
@ -2253,6 +2250,9 @@ public final class Player implements
stopProgressLoop(); stopProgressLoop();
} }
// When a (short) video ends the elements have to display the correct values
updatePlayBackElementsCurrentDuration(binding.playbackSeekBar.getMax());
showControls(500); showControls(500);
animate(binding.currentDisplaySeek, false, 200, AnimationType.SCALE_AND_ALPHA); animate(binding.currentDisplaySeek, false, 200, AnimationType.SCALE_AND_ALPHA);
binding.loadingPanel.setVisibility(View.GONE); binding.loadingPanel.setVisibility(View.GONE);
@ -2595,6 +2595,18 @@ public final class Player implements
//////////////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////////////*/
//region Playback position and seek //region Playback position and seek
/**
* Sets the current duration into the corresponding elements.
* @param currentProgress
*/
private void updatePlayBackElementsCurrentDuration(final int currentProgress) {
// Don't set seekbar progress while user is seeking
if (currentState != STATE_PAUSED_SEEK) {
binding.playbackSeekBar.setProgress(currentProgress);
}
binding.playbackCurrentTime.setText(getTimeString(currentProgress));
}
@Override // own playback listener (this is a getter) @Override // own playback listener (this is a getter)
public boolean isApproachingPlaybackEdge(final long timeToEndMillis) { public boolean isApproachingPlaybackEdge(final long timeToEndMillis) {
// If live, then not near playback edge // If live, then not near playback edge