36 lines
1.1 KiB
Swift
36 lines
1.1 KiB
Swift
|
//
|
||
|
// Preferences.swift
|
||
|
// Tusker
|
||
|
//
|
||
|
// Created by Shadowfacts on 8/28/18.
|
||
|
// Copyright © 2018 Shadowfacts. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import Foundation
|
||
|
|
||
|
class Preferences: Codable {
|
||
|
|
||
|
private(set) static var shared: Preferences = load()
|
||
|
|
||
|
private static var documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
|
||
|
private static var archiveURL = Preferences.documentsDirectory.appendingPathComponent("preferences").appendingPathExtension("plist")
|
||
|
|
||
|
static func save() {
|
||
|
let encoder = PropertyListEncoder()
|
||
|
let data = try? encoder.encode(shared)
|
||
|
try? data?.write(to: Preferences.archiveURL, options: .noFileProtection)
|
||
|
}
|
||
|
|
||
|
static func load() -> Preferences {
|
||
|
let decoder = PropertyListDecoder()
|
||
|
if let data = try? Data(contentsOf: Preferences.archiveURL),
|
||
|
let preferences = try? decoder.decode(Preferences.self, from: data) {
|
||
|
return preferences
|
||
|
}
|
||
|
return Preferences()
|
||
|
}
|
||
|
|
||
|
var showRepliesInProfiles = false
|
||
|
|
||
|
}
|