Add option "Keep last played video in the queue after restart"

This commit is contained in:
Arkadiusz Fal
2022-09-11 18:34:33 +02:00
parent f7fb8174cd
commit 01601176dd
4 changed files with 10 additions and 3 deletions

View File

@@ -150,6 +150,8 @@ final class PlayerModel: ObservableObject {
}
}}
@Default(.saveLastPlayed) var saveLastPlayed
@Default(.lastPlayed) var lastPlayed
@Default(.qualityProfiles) var qualityProfiles
@Default(.forceAVPlayerForLiveStreams) var forceAVPlayerForLiveStreams
@Default(.pauseOnHidingPlayer) private var pauseOnHidingPlayer
@@ -643,7 +645,9 @@ final class PlayerModel: ObservableObject {
DispatchQueue.main.async(qos: .background) { [weak self] in
guard let self = self else { return }
Defaults[.lastPlayed] = self.currentItem
if self.saveLastPlayed {
self.lastPlayed = self.currentItem
}
if self.playbackMode == .related,
let video = self.currentVideo,

View File

@@ -239,11 +239,11 @@ extension PlayerModel {
func restoreQueue() {
var restoredQueue = [PlayerQueueItem?]()
if let lastPlayed = Defaults[.lastPlayed],
if let lastPlayed = lastPlayed,
!Defaults[.queue].contains(where: { $0.videoID == lastPlayed.videoID })
{
restoredQueue.append(lastPlayed)
Defaults[.lastPlayed] = nil
self.lastPlayed = nil
}
restoredQueue.append(contentsOf: Defaults[.queue])