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 MacToolsPluginKit
@MainActor
final class HideNotchStateStore: HideNotchStateStoring {
private enum StorageKey {
static let desiredEnabled = "hide-notch.enabled"
}
private let storage: PluginStorage
private let legacyUserDefaults: UserDefaults
private let obsoleteKeys = [
"feature.hideNotchManagedWallpapers",
"feature.hideNotchEnabled",
"hide-notch.original-wallpaper-states",
"hide-notch.managed-space-states"
]
init(
context: PluginRuntimeContext = PluginRuntimeContext(pluginID: "hide-notch"),
userDefaults: UserDefaults? = nil
) {
self.legacyUserDefaults = userDefaults ?? .standard
self.storage = userDefaults.map {
UserDefaultsPluginStorage(pluginID: context.pluginID, userDefaults: $0)
} ?? context.storage
storage.migrateValueIfNeeded(
fromLegacyKey: StorageKey.desiredEnabled,
to: StorageKey.desiredEnabled
)
removeObsoleteStateIfNeeded()
}
var desiredEnabled: Bool {
get { storage.bool(forKey: StorageKey.desiredEnabled) }
set { storage.set(newValue, forKey: StorageKey.desiredEnabled) }
}
private func removeObsoleteStateIfNeeded() {
obsoleteKeys.forEach { legacyUserDefaults.removeObject(forKey: $0) }
}
}