31 lines
891 B
Swift
31 lines
891 B
Swift
import CodexBarCore
|
|
import Foundation
|
|
|
|
struct ProviderToggleStore {
|
|
private let userDefaults: UserDefaults
|
|
private let key = "providerToggles"
|
|
|
|
init(userDefaults: UserDefaults = .standard) {
|
|
self.userDefaults = userDefaults
|
|
}
|
|
|
|
func isEnabled(metadata: ProviderMetadata) -> Bool {
|
|
self.load()[metadata.cliName] ?? metadata.defaultEnabled
|
|
}
|
|
|
|
func setEnabled(_ enabled: Bool, metadata: ProviderMetadata) {
|
|
var toggles = self.load()
|
|
toggles[metadata.cliName] = enabled
|
|
self.userDefaults.set(toggles, forKey: self.key)
|
|
}
|
|
|
|
private func load() -> [String: Bool] {
|
|
(self.userDefaults.dictionary(forKey: self.key) as? [String: Bool]) ?? [:]
|
|
}
|
|
|
|
func purgeLegacyKeys() {
|
|
self.userDefaults.removeObject(forKey: "showCodexUsage")
|
|
self.userDefaults.removeObject(forKey: "showClaudeUsage")
|
|
}
|
|
}
|