import Foundation extension UserDefaults { enum Keys { static let audioInputMode = "audioInputMode" static let selectedAudioDeviceUID = "selectedAudioDeviceUID" static let prioritizedDevices = "prioritizedDevices" static let affiliatePromotionDismissed = "VoiceInkAffiliatePromotionDismissed" } // MARK: - Audio Input Mode var audioInputModeRawValue: String? { get { string(forKey: Keys.audioInputMode) } set { setValue(newValue, forKey: Keys.audioInputMode) } } // MARK: - Selected Audio Device UID var selectedAudioDeviceUID: String? { get { string(forKey: Keys.selectedAudioDeviceUID) } set { setValue(newValue, forKey: Keys.selectedAudioDeviceUID) } } // MARK: - Prioritized Devices var prioritizedDevicesData: Data? { get { data(forKey: Keys.prioritizedDevices) } set { setValue(newValue, forKey: Keys.prioritizedDevices) } } // MARK: - Affiliate Promotion Dismissal var affiliatePromotionDismissed: Bool { get { bool(forKey: Keys.affiliatePromotionDismissed) } set { setValue(newValue, forKey: Keys.affiliatePromotionDismissed) } } }