Przeglądaj źródła

Only overwrite saved PM state after successfully initialized to avoid PM state wipe

Joe Moran 5 miesięcy temu
rodzic
commit
ddff94fbf1
1 zmienionych plików z 8 dodań i 4 usunięć
  1. 8 4
      Trio/Sources/APS/DeviceDataManager.swift

+ 8 - 4
Trio/Sources/APS/DeviceDataManager.swift

@@ -77,11 +77,15 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
 
     var pumpManager: PumpManagerUI? {
         didSet {
-            pumpManager?.pumpManagerDelegate = self
-            pumpManager?.delegateQueue = processQueue
-            rawPumpManager = pumpManager?.rawValue
-            UserDefaults.standard.clearLegacyPumpManagerRawValue()
             if let pumpManager = pumpManager {
+                pumpManager.pumpManagerDelegate = self
+                pumpManager.delegateQueue = processQueue
+
+                /// Since the pump manager has been successfully instantiated from its saved state,
+                /// copy its rawValue to rawPumpManager which will be saved to persistant storage.
+                rawPumpManager = pumpManager.rawValue
+                UserDefaults.standard.clearLegacyPumpManagerRawValue()
+
                 pumpDisplayState.value = PumpDisplayState(name: pumpManager.localizedTitle, image: pumpManager.smallImage)
                 pumpName.send(pumpManager.localizedTitle)