Re-add PlayQueueItem.RECOVERY_UNSET

This was removed in #12347 / 31f8dd05a7628b1e60a034c20dca4eb7e516005f
This commit is contained in:
tobigr 2026-02-06 11:50:36 +01:00
parent e006328bb1
commit a430517189
3 changed files with 10 additions and 5 deletions

View File

@ -480,7 +480,7 @@ public final class Player implements PlaybackListener, Listener {
&& newQueue.size() == 1 && newQueue.getItem() != null
&& playQueue != null && playQueue.size() == 1 && playQueue.getItem() != null
&& newQueue.getItem().equals(playQueue.getItem())
&& newQueue.getItem().getRecoveryPosition() != Long.MIN_VALUE) {
&& newQueue.getItem().getRecoveryPosition() != PlayQueueItem.RECOVERY_UNSET) {
// Player can have state = IDLE when playback is stopped or failed
// and we should retry in this case
if (simpleExoPlayer.getPlaybackState()
@ -509,7 +509,7 @@ public final class Player implements PlaybackListener, Listener {
&& (playQueue == null || !playQueue.equalStreamsAndIndex(newQueue))
&& !newQueue.isEmpty()
&& newQueue.getItem() != null
&& newQueue.getItem().getRecoveryPosition() == Long.MIN_VALUE) {
&& newQueue.getItem().getRecoveryPosition() == PlayQueueItem.RECOVERY_UNSET) {
databaseUpdateDisposable.add(recordManager.loadStreamState(newQueue.getItem())
.observeOn(AndroidSchedulers.mainThread())
// Do not place initPlayback() in doFinally() because
@ -1700,7 +1700,7 @@ public final class Player implements PlaybackListener, Listener {
}
// sync the player index with the queue index, and seek to the correct position
if (item.getRecoveryPosition() != Long.MIN_VALUE) {
if (item.getRecoveryPosition() != PlayQueueItem.RECOVERY_UNSET) {
simpleExoPlayer.seekTo(playQueueIndex, item.getRecoveryPosition());
playQueue.unsetRecovery(playQueueIndex);
} else {

View File

@ -15,6 +15,7 @@ import org.schabi.newpipe.player.playqueue.PlayQueueEvent.RecoveryEvent
import org.schabi.newpipe.player.playqueue.PlayQueueEvent.RemoveEvent
import org.schabi.newpipe.player.playqueue.PlayQueueEvent.ReorderEvent
import org.schabi.newpipe.player.playqueue.PlayQueueEvent.SelectEvent
import org.schabi.newpipe.player.playqueue.PlayQueueItem
/**
* PlayQueue is responsible for keeping track of a list of streams and the index of
@ -390,7 +391,7 @@ abstract class PlayQueue internal constructor(
*/
@Synchronized
fun unsetRecovery(index: Int) {
setRecovery(index, Long.Companion.MIN_VALUE)
setRecovery(index, PlayQueueItem.RECOVERY_UNSET)
}
/**

View File

@ -28,7 +28,7 @@ class PlayQueueItem private constructor(
var isAutoQueued: Boolean = false
// package-private
var recoveryPosition = Long.Companion.MIN_VALUE
var recoveryPosition = RECOVERY_UNSET
var error: Throwable? = null
private set
@ -68,4 +68,8 @@ class PlayQueueItem private constructor(
override fun equals(o: Any?) = o is PlayQueueItem && serviceId == o.serviceId && url == o.url
override fun hashCode() = Objects.hash(url, serviceId)
companion object {
const val RECOVERY_UNSET = Long.MIN_VALUE
}
}