Voice wake: send or dismiss on release
This commit is contained in:
@@ -137,12 +137,17 @@ actor VoicePushToTalk {
|
||||
let chime = finalText.isEmpty ? .none : (self.activeConfig?.sendChime ?? .none)
|
||||
|
||||
await MainActor.run {
|
||||
VoiceWakeOverlayController.shared.presentFinal(
|
||||
transcript: finalText,
|
||||
forwardConfig: forward,
|
||||
delay: finalText.isEmpty ? 0.0 : 0.8,
|
||||
sendChime: chime,
|
||||
attributed: attributed)
|
||||
if finalText.isEmpty {
|
||||
VoiceWakeOverlayController.shared.dismiss(reason: .empty)
|
||||
} else {
|
||||
VoiceWakeOverlayController.shared.presentFinal(
|
||||
transcript: finalText,
|
||||
forwardConfig: forward,
|
||||
autoSendAfter: nil,
|
||||
sendChime: chime,
|
||||
attributed: attributed)
|
||||
VoiceWakeOverlayController.shared.sendNow(sendChime: chime)
|
||||
}
|
||||
}
|
||||
|
||||
self.committed = ""
|
||||
|
||||
@@ -52,7 +52,7 @@ final class VoiceWakeOverlayController: ObservableObject {
|
||||
func presentFinal(
|
||||
transcript: String,
|
||||
forwardConfig: VoiceWakeForwardConfig,
|
||||
delay: TimeInterval,
|
||||
autoSendAfter delay: TimeInterval?,
|
||||
sendChime: VoiceWakeChime = .none,
|
||||
attributed: NSAttributedString? = nil)
|
||||
{
|
||||
@@ -66,7 +66,9 @@ final class VoiceWakeOverlayController: ObservableObject {
|
||||
self.model.attributed = attributed ?? self.makeAttributed(from: transcript)
|
||||
self.model.level = 0
|
||||
self.present()
|
||||
self.scheduleAutoSend(after: delay, sendChime: sendChime)
|
||||
if let delay {
|
||||
self.scheduleAutoSend(after: delay, sendChime: sendChime)
|
||||
}
|
||||
}
|
||||
|
||||
func userBeganEditing() {
|
||||
|
||||
@@ -316,7 +316,7 @@ actor VoiceWakeRuntime {
|
||||
VoiceWakeOverlayController.shared.presentFinal(
|
||||
transcript: finalTranscript,
|
||||
forwardConfig: forwardConfig,
|
||||
delay: delay,
|
||||
autoSendAfter: delay,
|
||||
sendChime: sendChime,
|
||||
attributed: finalAttributed)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user