fix: avoid auto-send task init error
parent
12e048a7fb
commit
9c54e48194
|
|
@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue