Преглед на файлове

Improve the management during change pod

Pierre L преди 2 години
родител
ревизия
8a3690682c

+ 7 - 2
FreeAPS/Sources/APS/Extensions/PumpManagerExtensions.swift

@@ -19,13 +19,18 @@ extension PumpManagerUI {
 //        )
 //    }
 
-    func settingsViewController(bluetoothProvider: BluetoothProvider) -> UIViewController & CompletionNotifying {
-        settingsViewController(
+    func settingsViewController(
+        bluetoothProvider: BluetoothProvider,
+        pumpManagerOnboardingDelegate: PumpManagerOnboardingDelegate?
+    ) -> UIViewController & CompletionNotifying {
+        var vc = settingsViewController(
             bluetoothProvider: bluetoothProvider,
             colorPalette: .default,
             allowDebugFeatures: false,
             allowedInsulinTypes: [.apidra, .humalog, .novolog, .fiasp, .lyumjev]
         )
+        vc.pumpManagerOnboardingDelegate = pumpManagerOnboardingDelegate
+        return vc
     }
 
 //    func settingsViewController() -> UIViewController & CompletionNotifying {

+ 19 - 1
FreeAPS/Sources/Modules/Home/HomeStateModel.swift

@@ -181,7 +181,8 @@ extension Home {
                         let view = PumpConfig.PumpSettingsView(
                             pumpManager: pumpManager,
                             bluetoothManager: bluetoothProvider,
-                            completionDelegate: self
+                            completionDelegate: self,
+                            setupDelegate: self
                         ).asAny()
                         self.router.mainSecondaryModalView.send(view)
                     } else {
@@ -457,3 +458,20 @@ extension Home.StateModel: CompletionDelegate {
         setupPump = false
     }
 }
+
+extension Home.StateModel: PumpManagerOnboardingDelegate {
+    func pumpManagerOnboarding(didCreatePumpManager pumpManager: PumpManagerUI) {
+        provider.apsManager.pumpManager = pumpManager
+        if let insulinType = pumpManager.status.insulinType {
+            settingsManager.updateInsulinCurve(insulinType)
+        }
+    }
+
+    func pumpManagerOnboarding(didOnboardPumpManager _: PumpManagerUI) {
+        // nothing to do
+    }
+
+    func pumpManagerOnboarding(didPauseOnboarding _: PumpManagerUI) {
+        // TODO:
+    }
+}

+ 0 - 1
FreeAPS/Sources/Modules/PumpConfig/PumpConfigStateModel.swift

@@ -61,7 +61,6 @@ extension PumpConfig.StateModel: PumpManagerOnboardingDelegate {
         if let insulinType = pumpManager.status.insulinType {
             settingsManager.updateInsulinCurve(insulinType)
         }
-        setupPump = false
     }
 
     func pumpManagerOnboarding(didOnboardPumpManager _: PumpManagerUI) {

+ 2 - 1
FreeAPS/Sources/Modules/PumpConfig/View/PumpConfigRootView.swift

@@ -39,7 +39,8 @@ extension PumpConfig {
                         PumpSettingsView(
                             pumpManager: pumpManager,
                             bluetoothManager: state.provider.apsManager.bluetoothManager!,
-                            completionDelegate: state
+                            completionDelegate: state,
+                            setupDelegate: state
                         )
                     } else {
                         PumpSetupView(

+ 5 - 1
FreeAPS/Sources/Modules/PumpConfig/View/PumpSettingsView.swift

@@ -7,9 +7,13 @@ extension PumpConfig {
         let pumpManager: PumpManagerUI
         let bluetoothManager: BluetoothStateManager
         weak var completionDelegate: CompletionDelegate?
+        weak var setupDelegate: PumpManagerOnboardingDelegate?
 
         func makeUIViewController(context _: UIViewControllerRepresentableContext<PumpSettingsView>) -> UIViewController {
-            var vc = pumpManager.settingsViewController(bluetoothProvider: bluetoothManager)
+            var vc = pumpManager.settingsViewController(
+                bluetoothProvider: bluetoothManager,
+                pumpManagerOnboardingDelegate: setupDelegate
+            )
             vc.completionDelegate = completionDelegate
             return vc
         }