Add Live Activity for level sensor (surfaces on CarPlay automatically)
Replaces the ActivityKit boilerplate with a real lock screen/Dynamic Island UI driven by live pitch/roll readings, toggled from the leveling device's detail screen. Since iOS 17 shows any running Live Activity on CarPlay's dashboard without a dedicated CarPlay app entitlement, this covers the requested CarPlay use case without one. Also fixes the widget extension never being embedded into the app (missing Embed Foundation Extensions build phase and target dependency), which meant no widget or Live Activity could ever have rendered regardless of code changes. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
da64b1b6bd
commit
bfe2b00a5c
@@ -0,0 +1,23 @@
|
||||
import ActivityKit
|
||||
import Foundation
|
||||
|
||||
/// Inhalt der Neigungsmesser-Live-Activity.
|
||||
///
|
||||
/// Die App und die Widget-Extension kompilieren diese Datei je für sich in
|
||||
/// ihr eigenes Modul – sie darf deshalb nicht von `Shared/` abhängen, sonst
|
||||
/// müsste die Extension auch Bluetooth- und WatchConnectivity-Code mitbauen.
|
||||
/// Werte wie `isLevel` und `instruction` kommen darum schon fertig berechnet
|
||||
/// aus `LevelState` an, die Extension zeigt nur an.
|
||||
struct LevelActivityAttributes: ActivityAttributes {
|
||||
struct ContentState: Codable, Hashable {
|
||||
var pitch: Double?
|
||||
var roll: Double?
|
||||
var isLevel: Bool
|
||||
var instruction: String?
|
||||
var isCalibrated: Bool
|
||||
var updatedAt: Date
|
||||
}
|
||||
|
||||
/// Name des Neigungsmessers, wie in der App vergeben.
|
||||
var deviceName: String
|
||||
}
|
||||
Reference in New Issue
Block a user