From 50ed8c2e51a611d8f503acd3549841cba47cab79 Mon Sep 17 00:00:00 2001 From: Beingpax Date: Mon, 5 Jan 2026 22:33:55 +0545 Subject: [PATCH] Fix model queries to use Keychain for API key checks --- .../Whisper/WhisperState+ModelQueries.swift | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/VoiceInk/Whisper/WhisperState+ModelQueries.swift b/VoiceInk/Whisper/WhisperState+ModelQueries.swift index f634ea0..ff92be3 100644 --- a/VoiceInk/Whisper/WhisperState+ModelQueries.swift +++ b/VoiceInk/Whisper/WhisperState+ModelQueries.swift @@ -15,23 +15,17 @@ extension WhisperState { return false } case .groq: - let key = UserDefaults.standard.string(forKey: "GROQAPIKey") - return key != nil && !key!.isEmpty + return APIKeyManager.shared.hasAPIKey(forProvider: "Groq") case .elevenLabs: - let key = UserDefaults.standard.string(forKey: "ElevenLabsAPIKey") - return key != nil && !key!.isEmpty + return APIKeyManager.shared.hasAPIKey(forProvider: "ElevenLabs") case .deepgram: - let key = UserDefaults.standard.string(forKey: "DeepgramAPIKey") - return key != nil && !key!.isEmpty + return APIKeyManager.shared.hasAPIKey(forProvider: "Deepgram") case .mistral: - let key = UserDefaults.standard.string(forKey: "MistralAPIKey") - return key != nil && !key!.isEmpty + return APIKeyManager.shared.hasAPIKey(forProvider: "Mistral") case .gemini: - let key = UserDefaults.standard.string(forKey: "GeminiAPIKey") - return key != nil && !key!.isEmpty + return APIKeyManager.shared.hasAPIKey(forProvider: "Gemini") case .soniox: - let key = UserDefaults.standard.string(forKey: "SonioxAPIKey") - return key != nil && !key!.isEmpty + return APIKeyManager.shared.hasAPIKey(forProvider: "Soniox") case .custom: // Custom models are always usable since they contain their own API keys return true