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:
parent
f7fb8174cd
commit
01601176dd
@ -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,
|
||||||
|
@ -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])
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -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")) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user