Files
steipete--codexbar/Sources/CodexBar/ProviderToggleStore.swift
T
2026-07-13 12:22:33 +08:00

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")
}
}