From e77ecb12c7acc0abfa2c97c75d2ebe1b0a15d09b Mon Sep 17 00:00:00 2001 From: Beingpax Date: Thu, 15 May 2025 16:10:52 +0545 Subject: [PATCH] Fix compiler warnings and update deprecated API. --- VoiceInk/CursorPaster.swift | 4 ++-- .../Services/AudioTranscriptionManager.swift | 13 +++++----- .../Services/AudioTranscriptionService.swift | 24 +++++++++++++++---- VoiceInk/Services/PolarService.swift | 3 ++- VoiceInk/WindowManager.swift | 2 +- 5 files changed, 30 insertions(+), 16 deletions(-) diff --git a/VoiceInk/CursorPaster.swift b/VoiceInk/CursorPaster.swift index 3c70f2d..9687a48 100644 --- a/VoiceInk/CursorPaster.swift +++ b/VoiceInk/CursorPaster.swift @@ -22,7 +22,7 @@ class CursorPaster { // Use the preferred paste method based on user settings if UserDefaults.standard.bool(forKey: "UseAppleScriptPaste") { - pasteUsingAppleScript() + _ = pasteUsingAppleScript() } else { pasteUsingCommandV() } @@ -45,7 +45,7 @@ class CursorPaster { var error: NSDictionary? if let scriptObject = NSAppleScript(source: script) { - let output = scriptObject.executeAndReturnError(&error) + _ = scriptObject.executeAndReturnError(&error) if error != nil { print("AppleScript paste failed: \(error?.description ?? "Unknown error")") logger.notice("AppleScript paste failed with error: \(error?.description ?? "Unknown error")") diff --git a/VoiceInk/Services/AudioTranscriptionManager.swift b/VoiceInk/Services/AudioTranscriptionManager.swift index 915f9a5..df50553 100644 --- a/VoiceInk/Services/AudioTranscriptionManager.swift +++ b/VoiceInk/Services/AudioTranscriptionManager.swift @@ -71,8 +71,7 @@ class AudioTranscriptionManager: ObservableObject { // Get audio duration let audioAsset = AVURLAsset(url: url) - let durationTime = try await audioAsset.load(.duration) - let duration = CMTimeGetSeconds(durationTime) + let duration = CMTimeGetSeconds(audioAsset.duration) // Create permanent copy of the audio file let recordingsDirectory = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)[0] @@ -112,7 +111,7 @@ class AudioTranscriptionManager: ObservableObject { audioFileURL: permanentURL.absoluteString ) modelContext.insert(transcription) - modelContext.save() + try modelContext.save() currentTranscription = transcription } catch { logger.error("Enhancement failed: \(error.localizedDescription)") @@ -123,7 +122,7 @@ class AudioTranscriptionManager: ObservableObject { audioFileURL: permanentURL.absoluteString ) modelContext.insert(transcription) - modelContext.save() + try modelContext.save() currentTranscription = transcription } } else { @@ -133,13 +132,13 @@ class AudioTranscriptionManager: ObservableObject { audioFileURL: permanentURL.absoluteString ) modelContext.insert(transcription) - modelContext.save() + try modelContext.save() currentTranscription = transcription } processingPhase = .completed - try await Task.sleep(nanoseconds: 1_500_000_000) - finishProcessing() + try? await Task.sleep(nanoseconds: 1_500_000_000) + await finishProcessing() } catch { await handleError(error) diff --git a/VoiceInk/Services/AudioTranscriptionService.swift b/VoiceInk/Services/AudioTranscriptionService.swift index b77f337..93e0069 100644 --- a/VoiceInk/Services/AudioTranscriptionService.swift +++ b/VoiceInk/Services/AudioTranscriptionService.swift @@ -59,8 +59,7 @@ class AudioTranscriptionService: ObservableObject { // Get audio duration let audioAsset = AVURLAsset(url: url) - let durationTime = try await audioAsset.load(.duration) - let duration = CMTimeGetSeconds(durationTime) + let duration = CMTimeGetSeconds(audioAsset.duration) // Create a permanent copy of the audio file let recordingsDirectory = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)[0] @@ -119,7 +118,12 @@ class AudioTranscriptionService: ObservableObject { audioFileURL: permanentURLString ) modelContext.insert(newTranscription) - modelContext.save() + do { + try modelContext.save() + } catch { + logger.error("❌ Failed to save transcription: \(error.localizedDescription)") + messageLog += "Failed to save transcription: \(error.localizedDescription)\n" + } await MainActor.run { isTranscribing = false @@ -135,7 +139,12 @@ class AudioTranscriptionService: ObservableObject { audioFileURL: permanentURLString ) modelContext.insert(newTranscription) - modelContext.save() + do { + try modelContext.save() + } catch { + logger.error("❌ Failed to save transcription: \(error.localizedDescription)") + messageLog += "Failed to save transcription: \(error.localizedDescription)\n" + } await MainActor.run { isTranscribing = false @@ -151,7 +160,12 @@ class AudioTranscriptionService: ObservableObject { audioFileURL: permanentURLString ) modelContext.insert(newTranscription) - modelContext.save() + do { + try modelContext.save() + } catch { + logger.error("❌ Failed to save transcription: \(error.localizedDescription)") + messageLog += "Failed to save transcription: \(error.localizedDescription)\n" + } await MainActor.run { isTranscribing = false diff --git a/VoiceInk/Services/PolarService.swift b/VoiceInk/Services/PolarService.swift index 8899b9f..3e3dac3 100644 --- a/VoiceInk/Services/PolarService.swift +++ b/VoiceInk/Services/PolarService.swift @@ -6,6 +6,7 @@ class PolarService { private let apiToken = "Token" private let baseURL = "https://api.polar.sh" + struct LicenseValidationResponse: Codable { let status: String let limit_activations: Int? @@ -55,7 +56,7 @@ class PolarService { // Try to get the Mac serial number private func getMacSerialNumber() -> String? { - let platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice")) + let platformExpert = IOServiceGetMatchingService(kIOMainPortDefault, IOServiceMatching("IOPlatformExpertDevice")) if platformExpert == 0 { return nil } defer { IOObjectRelease(platformExpert) } diff --git a/VoiceInk/WindowManager.swift b/VoiceInk/WindowManager.swift index 3b2c5cd..f6f54a6 100644 --- a/VoiceInk/WindowManager.swift +++ b/VoiceInk/WindowManager.swift @@ -61,7 +61,7 @@ class WindowStateDelegate: NSObject, NSWindowDelegate { func windowDidBecomeKey(_ notification: Notification) { // Ensure window is properly activated - guard let window = notification.object as? NSWindow else { return } + guard let _ = notification.object as? NSWindow else { return } NSApp.activate(ignoringOtherApps: true) } }