diff --git a/FreeAPS/Sources/APS/Extensions/PumpManagerExtensions.swift b/FreeAPS/Sources/APS/Extensions/PumpManagerExtensions.swift index 631e5f6837..e3ad89c764 100644 --- a/FreeAPS/Sources/APS/Extensions/PumpManagerExtensions.swift +++ b/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 { diff --git a/FreeAPS/Sources/Modules/Home/HomeStateModel.swift b/FreeAPS/Sources/Modules/Home/HomeStateModel.swift index 725947725c..ce2f41af0a 100644 --- a/FreeAPS/Sources/Modules/Home/HomeStateModel.swift +++ b/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: + } +} diff --git a/FreeAPS/Sources/Modules/PumpConfig/PumpConfigStateModel.swift b/FreeAPS/Sources/Modules/PumpConfig/PumpConfigStateModel.swift index 92fef9d466..d0153d5835 100644 --- a/FreeAPS/Sources/Modules/PumpConfig/PumpConfigStateModel.swift +++ b/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) { diff --git a/FreeAPS/Sources/Modules/PumpConfig/View/PumpConfigRootView.swift b/FreeAPS/Sources/Modules/PumpConfig/View/PumpConfigRootView.swift index 36aa433be7..45ae196ba1 100644 --- a/FreeAPS/Sources/Modules/PumpConfig/View/PumpConfigRootView.swift +++ b/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( diff --git a/FreeAPS/Sources/Modules/PumpConfig/View/PumpSettingsView.swift b/FreeAPS/Sources/Modules/PumpConfig/View/PumpSettingsView.swift index a356eb0112..403ab8c4ea 100644 --- a/FreeAPS/Sources/Modules/PumpConfig/View/PumpSettingsView.swift +++ b/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) -> UIViewController { - var vc = pumpManager.settingsViewController(bluetoothProvider: bluetoothManager) + var vc = pumpManager.settingsViewController( + bluetoothProvider: bluetoothManager, + pumpManagerOnboardingDelegate: setupDelegate + ) vc.completionDelegate = completionDelegate return vc }