fix: persist SponsorBlock preference between launches

This commit is contained in:
2026-10-25 03:41:38 +01:00
parent b04ed7fdc8
commit 8c2a18df48
4 changed files with 37 additions and 4 deletions
+4 -1
View File
@@ -76,6 +76,7 @@ final class PlayerModel: ObservableObject {
private var metadataLifecycle = MetadataLifecycle()
private var metadataTask: Task<Void, Never>?
@Published private(set) var sponsorBlockEnabled: Bool
private let preferenceDefaults: UserDefaults
private var sponsorVideoID: String?
private var sponsorGeneration: UInt64 = 0
private var sponsorTask: Task<Void, Never>?
@@ -265,7 +266,8 @@ final class PlayerModel: ObservableObject {
compactTitleProgress = configuration.compactTitleProgress
automaticYouTubeQuality = configuration.automaticQuality
showsBufferInfo = configuration.showBufferInfo
sponsorBlockEnabled = configuration.sponsorBlock
preferenceDefaults = defaults
sponsorBlockEnabled = (defaults.object(forKey: "sponsorBlockEnabled") as? Bool) ?? configuration.sponsorBlock
miruroVideoProvider = configuration.miruroVideoProvider
miruroCaptionProvider = configuration.miruroCaptionProvider
compactWindow = CompactWindowController(snappingEnabled: configuration.snapToEdges, defaults: defaults)
@@ -842,6 +844,7 @@ final class PlayerModel: ObservableObject {
func setSponsorBlockEnabled(_ enabled: Bool) {
guard sponsorBlockEnabled != enabled else { return }
sponsorBlockEnabled = enabled
preferenceDefaults.set(enabled, forKey: "sponsorBlockEnabled")
replaceSponsorMetadata(videoID: sponsorVideoID)
}