forked from fritob/Camper-Monitor
Demo-Modus: Persistenz und Kühlbox-Bedienung reparieren, Live Activity aktivieren
Drei vom Nutzer im Testbuild gefundene Fehler: * DeviceStore.save() schrieb auch im Demo-Modus in UserDefaults. Jede Änderung während aktivem Demo-Modus (z.B. Fahrzeuggrafik oder Einbaulage ändern) persistierte damit die erfundenen Fahrzeuge/Geräte dauerhaft – sie blieben nach dem Deaktivieren des Demo-Modus stehen. save() ist jetzt im Demo-Modus ein no-op. * Die Kühlbox-Schalter (Ein/Aus, Eco/Max, Solltemperatur, Sperre) liefen über sendFridgeSettings(), das eine echte Bluetooth-Verbindung voraussetzt (`managed`-Eintrag) – im Demo-Modus gibt es die nie, die Schalter taten also nichts. Im Demo-Modus wird der angezeigte AlpicoolState jetzt direkt geändert, ohne den Umweg über einen Stellbefehl. * Der Live-Activity-Schalter liess sich nicht einschalten, weil dem Haupt-App-Target der Info.plist-Schlüssel NSSupportsLiveActivities fehlte – Activity.request() wirft ohne ihn, wird aber vom Aufrufer stillschweigend abgefangen, sodass der Schalter beim Antippen einfach auf Aus zurückspringt. Build (App + Watch) und Tests grün. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
b956324234
commit
eed8f33e30
@@ -244,7 +244,12 @@ final class DeviceStore {
|
||||
}
|
||||
}
|
||||
|
||||
/// Im Demo-Modus wird nichts geschrieben – sonst überlebten die erfundenen
|
||||
/// Fahrzeuge und Geräte das Ausschalten des Demo-Modus, weil z.B. das
|
||||
/// Ändern der Fahrzeuggrafik oder der Einbaulage ganz normal `save()`
|
||||
/// aufruft.
|
||||
private func save() {
|
||||
guard !DemoData.isEnabled else { return }
|
||||
let defaults = UserDefaults.standard
|
||||
if let data = try? JSONEncoder().encode(devices) {
|
||||
defaults.set(data, forKey: Self.devicesKey)
|
||||
|
||||
Reference in New Issue
Block a user