1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2026-02-07 10:40:15 +00:00

Add conditional guard to prevent useVideoAndSubtitles overwriting recovery position that was set in Player.handleIntent for RESUME_PLAYBACK when resuming playback

This commit is contained in:
AbsurdlyLongUsername
2026-02-05 04:36:53 +00:00
parent 725cb70cbd
commit 118def08b4

View File

@@ -2210,6 +2210,13 @@ public final class Player implements PlaybackListener, Listener {
isAudioOnly = !videoAndSubtitlesEnabled;
final var item = playQueue.getItem();
final boolean hasPendingRecovery =
item != null && item.getRecoveryPosition() != PlayQueueItem.RECOVERY_UNSET;
final boolean hasTimeline =
!exoPlayerIsNull() && !simpleExoPlayer.getCurrentTimeline().isEmpty();
getCurrentStreamInfo().ifPresentOrElse(info -> {
// In case we don't know the source type, fall back to either video-with-audio, or
// audio-only source type
@@ -2217,6 +2224,10 @@ public final class Player implements PlaybackListener, Listener {
.orElse(SourceType.VIDEO_WITH_AUDIO_OR_AUDIO_ONLY);
setRecovery(); // making sure to save playback position before reloadPlayQueueManager()
if (hasTimeline || !hasPendingRecovery) {
// making sure to save playback position before reloadPlayQueueManager()
setRecovery();
}
if (playQueueManagerReloadingNeeded(sourceType, info, getVideoRendererIndex())) {
reloadPlayQueueManager();
@@ -2230,6 +2241,10 @@ public final class Player implements PlaybackListener, Listener {
index of the video renderer or playQueueManagerReloadingNeeded returns true
*/
setRecovery(); // making sure to save playback position before reloadPlayQueueManager()
if (hasTimeline || !hasPendingRecovery) {
// making sure to save playback position before reloadPlayQueueManager()
setRecovery();
}
reloadPlayQueueManager();
});