forked from fritob/Camper-Monitor
solar-integration (aus dem separaten VanAligneiOS-Repo) und dev_watch haben unabhängige Git-Historien, decken aber überlappende und sich ergänzende Funktionen ab. Übernommen aus solar-integration: Votronic- Solar-ESP-Anbindung samt Geräterolle, die Live-Activity/Widget-Extension fürs Sperrbildschirm/Dynamic-Island/CarPlay, das Querformat-Layout für Libelle/Fahrzeug-Ansicht und Ausrichtungs-Assistent, sowie die mehreren Fahrzeuggrafik-Stile (Vanster/California). Beibehalten aus dev_watch: alle zusätzlichen Geräteprotokolle (Daly-/JBD-BMS, Alpicool- Kühlbox, WattCycle, Victron), die dort zwischenzeitlich entstanden. Die Xcode-Projektdatei wurde von Hand um die neue Widget-Extension samt SharedActivity-Gruppe erweitert (Datei-synchronisierte Gruppen, kein App-Group-Entitlement nötig). Build für App, Watch und Widget-Extension geprüft (Debug und Release). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
53 lines
1.5 KiB
Swift
53 lines
1.5 KiB
Swift
import Foundation
|
||
|
||
/// Welche Silhouette die Fahrzeug-Ansicht des Neigungsmessers zeigt.
|
||
///
|
||
/// Jeder Fall ist ein zusammengehöriges Bilderset aus Seiten- und
|
||
/// Heckansicht in Assets.xcassets, beide als Vorlage ("template")
|
||
/// exportiert, damit `foregroundStyle` sie einfärben kann. Im Picker wird
|
||
/// nur die Seitenansicht gezeigt.
|
||
enum VehicleGraphicStyle: String, CaseIterable, Identifiable, Codable, Sendable {
|
||
case vanster
|
||
case california
|
||
|
||
var id: String { rawValue }
|
||
|
||
var title: String {
|
||
switch self {
|
||
case .vanster: return "Vanster"
|
||
case .california: return "California"
|
||
}
|
||
}
|
||
|
||
var sideImageName: String {
|
||
switch self {
|
||
case .vanster: return "VansterSide"
|
||
case .california: return "CaliforniaSide"
|
||
}
|
||
}
|
||
|
||
/// Für California liegt noch keine eigene Heckansicht vor, deshalb
|
||
/// vorerst die von Vanster.
|
||
var rearImageName: String {
|
||
switch self {
|
||
case .vanster, .california: return "VansterRear"
|
||
}
|
||
}
|
||
|
||
/// Seitenverhältnis der jeweiligen Bilder – ohne das würde eine Grafik
|
||
/// mit anderen Proportionen in der gemeinsamen Bildhülle verzerrt oder
|
||
/// ungewollt verkleinert erscheinen.
|
||
var sideAspect: Double {
|
||
switch self {
|
||
case .vanster: return VehicleTilt.sideAspect
|
||
case .california: return 1
|
||
}
|
||
}
|
||
|
||
var rearAspect: Double {
|
||
switch self {
|
||
case .vanster, .california: return VehicleTilt.rearAspect
|
||
}
|
||
}
|
||
}
|