import Foundation import Observation /// Brücke vom Siri-Kurzbefehl „Gassi gehen" zur UI. /// /// Der App Intent läuft evtl. außerhalb des App-Prozesses → er setzt ein Flag in /// der **App Group**. Beim Aktivwerden liest die App das Flag und stößt über /// `pendingStart` den Wechsel auf den Aufnehmen-Tab + den Aufnahme-Start an. @Observable @MainActor final class WalkLauncher { static let shared = WalkLauncher() private init() {} /// UI-Signal: true → Aufnehmen-Tab wählen und Aufnahme starten. var pendingStart = false static let appGroup = "group.app.banyaro.ios" static let flagKey = "pendingStartWalk" /// Vom App Intent aufgerufen (cross-process über die App Group). static func requestStartViaAppGroup() { UserDefaults(suiteName: appGroup)?.set(true, forKey: flagKey) } /// Beim Aktivwerden der App das Flag einlösen → `pendingStart`. func consumePendingFlag() { let defaults = UserDefaults(suiteName: Self.appGroup) guard defaults?.bool(forKey: Self.flagKey) == true else { return } defaults?.removeObject(forKey: Self.flagKey) pendingStart = true } }