1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00
persephone/Shared/State/PreferencesState.swift
Diego Torres 663451c2b5 WIP
2020-11-07 19:26:09 +01:00

45 lines
1.3 KiB
Swift

//
// PreferencesState.swift
// Persephone
//
// Created by Daniel Barber on 2019/4/28.
// Copyright © 2019 Dan Barber. All rights reserved.
//
import Foundation
import ReSwift
struct PreferencesState: StateType, Equatable {
let preferences = UserDefaults.standard
var mpdServer: MPDServer
var fetchMissingArtworkFromInternet: Bool
var fetchArtworkFromCustomURL: Bool
var customArtworkURL: URL?
init() {
self.mpdServer = MPDServer(
host: preferences.string(forKey: "mpdHost"),
port: preferences.value(forKey: "mpdPort") as? Int
)
self.fetchMissingArtworkFromInternet = preferences.bool(
forKey: "fetchMissingArtworkFromInternet"
)
self.fetchArtworkFromCustomURL = preferences.bool(forKey: "fetchArtworkFromCustomURL")
self.customArtworkURL = preferences.url(forKey: "customArtworkURL")
}
func save() {
preferences.set(mpdServer.host, forKey: "mpdHost")
if (mpdServer.port.map { $0 > 0 } ?? false) {
preferences.set(mpdServer.port, forKey: "mpdPort")
} else {
preferences.removeObject(forKey: "mpdPort")
}
preferences.set(fetchMissingArtworkFromInternet, forKey: "fetchMissingArtworkFromInternet")
preferences.set(fetchArtworkFromCustomURL, forKey: "fetchArtworkFromCustomURL")
preferences.set(customArtworkURL, forKey: "customArtworkURL")
}
}