fix: avoid auto-send task init error

This commit is contained in:
Peter Steinberger
2025-12-08 22:02:03 +01:00
parent 12e048a7fb
commit 9c54e48194

View File

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