1
0
mirror of https://github.com/yattee/yattee.git synced 2025-04-27 23:40:35 +05:30

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

View File

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

View File

@ -154,6 +154,7 @@ extension Defaults.Keys {
static let recentlyOpened = Key<[RecentItem]>("recentlyOpened", default: []) static let recentlyOpened = Key<[RecentItem]>("recentlyOpened", default: [])
static let queue = Key<[PlayerQueueItem]>("queue", default: []) static let queue = Key<[PlayerQueueItem]>("queue", default: [])
static let saveLastPlayed = Key<Bool>("saveLastPlayed", default: false)
static let lastPlayed = Key<PlayerQueueItem?>("lastPlayed") static let lastPlayed = Key<PlayerQueueItem?>("lastPlayed")
static let playbackMode = Key<PlayerModel.PlaybackMode>("playbackMode", default: .queue) static let playbackMode = Key<PlayerModel.PlaybackMode>("playbackMode", default: .queue)

View File

@ -9,6 +9,7 @@ struct HistorySettings: View {
@EnvironmentObject<PlayerModel> private var player @EnvironmentObject<PlayerModel> private var player
@Default(.saveRecents) private var saveRecents @Default(.saveRecents) private var saveRecents
@Default(.saveLastPlayed) private var saveLastPlayed
@Default(.saveHistory) private var saveHistory @Default(.saveHistory) private var saveHistory
@Default(.showWatchingProgress) private var showWatchingProgress @Default(.showWatchingProgress) private var showWatchingProgress
@Default(.watchedThreshold) private var watchedThreshold @Default(.watchedThreshold) private var watchedThreshold
@ -57,6 +58,7 @@ struct HistorySettings: View {
Toggle("Save history of played videos", isOn: $saveHistory) Toggle("Save history of played videos", isOn: $saveHistory)
Toggle("Show progress of watching on thumbnails", isOn: $showWatchingProgress) Toggle("Show progress of watching on thumbnails", isOn: $showWatchingProgress)
.disabled(!saveHistory) .disabled(!saveHistory)
Toggle("Keep last played video in the queue after restart", isOn: $saveLastPlayed)
} }
Section(header: SettingsHeader(text: "Watched")) { Section(header: SettingsHeader(text: "Watched")) {