Files
wehub-resource-sync 1d1286fadb
Build / Build and test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:18:38 +08:00

43 lines
1.3 KiB
Swift

import Foundation
import OSLog
@MainActor
final class UserDefaultsDisplayDisableStateStore: DisplayDisableStateStoring {
private enum Constants {
static let key = "DisplayBrightness.DisplayDisableRecoverySnapshot"
}
private let logger = Logger(
subsystem: Bundle.main.bundleIdentifier ?? "cc.ggbond.mactools",
category: "DisplayDisableStateStore"
)
private let userDefaults: UserDefaults
init(userDefaults: UserDefaults = .standard) {
self.userDefaults = userDefaults
}
var snapshot: DisplayDisableRecoverySnapshot? {
get {
guard let data = userDefaults.data(forKey: Constants.key) else {
return nil
}
return try? JSONDecoder().decode(DisplayDisableRecoverySnapshot.self, from: data)
}
set {
guard let newValue else {
userDefaults.removeObject(forKey: Constants.key)
return
}
do {
let data = try JSONEncoder().encode(newValue)
userDefaults.set(data, forKey: Constants.key)
} catch {
logger.error("failed to encode display disable recovery snapshot: \(error.localizedDescription, privacy: .public)")
}
}
}
}