macos: blink critter when overlay dismisses empty
parent
677374de86
commit
abca8535cf
|
|
@ -106,6 +106,7 @@ final class AppState: ObservableObject {
|
|||
|
||||
@Published var isWorking: Bool = false
|
||||
@Published var earBoostActive: Bool = false
|
||||
@Published var blinkTick: Int = 0
|
||||
@Published var heartbeatsEnabled: Bool {
|
||||
didSet {
|
||||
UserDefaults.standard.set(self.heartbeatsEnabled, forKey: heartbeatsEnabledKey)
|
||||
|
|
@ -228,6 +229,10 @@ final class AppState: ObservableObject {
|
|||
self.earBoostActive = false
|
||||
}
|
||||
|
||||
func blinkOnce() {
|
||||
self.blinkTick &+= 1
|
||||
}
|
||||
|
||||
func setVoiceWakeEnabled(_ enabled: Bool) async {
|
||||
guard voiceWakeSupported else {
|
||||
self.swabbleEnabled = false
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ struct ClawdisApp: App {
|
|||
isPaused: self.state.isPaused,
|
||||
isWorking: self.state.isWorking,
|
||||
earBoostActive: self.state.earBoostActive,
|
||||
blinkTick: self.state.blinkTick,
|
||||
relayStatus: self.relayManager.status,
|
||||
animationsEnabled: self.state.iconAnimationsEnabled)
|
||||
}
|
||||
|
|
@ -344,6 +345,7 @@ private struct CritterStatusLabel: View {
|
|||
var isPaused: Bool
|
||||
var isWorking: Bool
|
||||
var earBoostActive: Bool
|
||||
var blinkTick: Int
|
||||
var relayStatus: RelayProcessManager.Status
|
||||
var animationsEnabled: Bool
|
||||
|
||||
|
|
@ -405,6 +407,7 @@ private struct CritterStatusLabel: View {
|
|||
}
|
||||
}
|
||||
.onChange(of: self.isPaused) { _, _ in self.resetMotion() }
|
||||
.onChange(of: self.blinkTick) { _, _ in self.blink() }
|
||||
.onChange(of: self.animationsEnabled) { _, enabled in
|
||||
if enabled {
|
||||
self.scheduleRandomTimers(from: Date())
|
||||
|
|
|
|||
|
|
@ -139,6 +139,9 @@ final class VoiceWakeOverlayController: ObservableObject {
|
|||
window.orderOut(nil)
|
||||
self.model.isVisible = false
|
||||
self.model.level = 0
|
||||
if outcome == .empty {
|
||||
AppStateStore.shared.blinkOnce()
|
||||
}
|
||||
AppStateStore.shared.stopVoiceEars()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue