fix: avoid auto-send task init error

main
Peter Steinberger 2025-12-08 22:02:03 +01:00
parent 12e048a7fb
commit 9c54e48194
1 changed files with 6 additions and 8 deletions

View File

@ -261,15 +261,13 @@ final class VoiceWakeOverlayController: ObservableObject {
private func scheduleAutoSend(after delay: TimeInterval, sendChime: VoiceWakeChime) { private func scheduleAutoSend(after delay: TimeInterval, sendChime: VoiceWakeChime) {
guard let forwardConfig, forwardConfig.enabled else { return } guard let forwardConfig, forwardConfig.enabled else { return }
self.autoSendTask?.cancel() self.autoSendTask?.cancel()
self.autoSendTask = Task { [weak self, sendChime] in self.autoSendTask = Task<Void, Never> { [weak self, sendChime] in
do { let nanos = UInt64(max(0, delay) * 1_000_000_000)
let nanos = UInt64(delay * 1_000_000_000) try? await Task.sleep(nanoseconds: nanos)
try await Task.sleep(nanoseconds: nanos) guard !Task.isCancelled else { return }
try Task.checkCancellation() await MainActor.run {
guard let self else { return } guard let self else { return }
await self.sendNow(sendChime: sendChime) self.sendNow(sendChime: sendChime)
} catch is CancellationError {
return
} }
} }
} }