Skip to content

Commit

Permalink
Apply seek conditions based on direction
Browse files Browse the repository at this point in the history
* When rewinding: Check if <0,5s
* When fast-forwarding: Check if player has completed or the current playback has ended

This allows rewinding on the endscreen
  • Loading branch information
litetex committed Jan 21, 2022
1 parent 1c20eab commit 30ce906
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions app/src/main/java/org/schabi/newpipe/player/Player.java
Original file line number Diff line number Diff line change
Expand Up @@ -603,17 +603,25 @@ public void onDoubleTapEnd() {
public FastSeekDirection getFastSeekDirection(
@NonNull final DisplayPortion portion
) {
// Null indicates an invalid area or condition e.g. the middle portion
// or video start or end was reached during double tap seeking
if (invalidSeekConditions()) {
if (exoPlayerIsNull()) {
// Abort seeking
playerGestureListener.endMultiDoubleTap();
return FastSeekDirection.NONE;
}
if (portion == DisplayPortion.LEFT
// Small puffer to eliminate infinite rewind seeking
&& simpleExoPlayer.getCurrentPosition() > 500L) {
if (portion == DisplayPortion.LEFT) {
// Check if we can rewind
// Small puffer to eliminate infinite rewind seeking
if (simpleExoPlayer.getCurrentPosition() < 500L) {
return FastSeekDirection.NONE;
}
return FastSeekDirection.BACKWARD;
} else if (portion == DisplayPortion.RIGHT) {
// Check if the can fast-forward
if (currentState == STATE_COMPLETED
|| simpleExoPlayer.getCurrentPosition()
>= simpleExoPlayer.getDuration()) {
return FastSeekDirection.NONE;
}
return FastSeekDirection.FORWARD;
}
/* portion == DisplayPortion.MIDDLE */
Expand All @@ -629,14 +637,6 @@ public void seek(final boolean forward) {
fastRewind();
}
}

private boolean invalidSeekConditions() {
return exoPlayerIsNull()
|| simpleExoPlayer.getPlaybackState()
== com.google.android.exoplayer2.Player.STATE_ENDED
|| simpleExoPlayer.getCurrentPosition() >= simpleExoPlayer.getDuration()
|| currentState == STATE_COMPLETED;
}
});
playerGestureListener.doubleTapControls(binding.fastSeekOverlay);
}
Expand Down

0 comments on commit 30ce906

Please sign in to comment.