PumpSetupView.swift 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import LoopKit
  2. import LoopKitUI
  3. import MinimedKit
  4. import MinimedKitUI
  5. import OmniKit
  6. import OmniKitUI
  7. import RileyLinkBLEKit
  8. import RileyLinkKit
  9. import RileyLinkKitUI
  10. import SwiftUI
  11. import UIKit
  12. extension PumpConfig {
  13. struct PumpSetupView: UIViewControllerRepresentable {
  14. let pumpType: PumpType
  15. let pumpInitialSettings: PumpInitialSettings
  16. weak var completionDelegate: CompletionDelegate?
  17. weak var setupDelegate: PumpManagerSetupViewControllerDelegate?
  18. func makeUIViewController(context _: UIViewControllerRepresentableContext<PumpSetupView>) -> UIViewController {
  19. var setupViewController: PumpManagerSetupViewController & UIViewController & CompletionNotifying
  20. switch pumpType {
  21. case .minimed:
  22. setupViewController = MinimedPumpManager.setupViewController(
  23. insulinTintColor: .accentColor,
  24. guidanceColors: GuidanceColors(acceptable: .green, warning: .orange, critical: .red),
  25. allowedInsulinTypes: [.apidra, .fiasp, .humalog, .novolog]
  26. )
  27. case .omnipod:
  28. setupViewController = OmnipodPumpManager.setupViewController(
  29. insulinTintColor: .accentColor,
  30. guidanceColors: GuidanceColors(acceptable: .green, warning: .orange, critical: .red),
  31. allowedInsulinTypes: [.apidra, .fiasp, .humalog, .novolog]
  32. )
  33. }
  34. setupViewController.setupDelegate = setupDelegate
  35. setupViewController.completionDelegate = completionDelegate
  36. setupViewController.maxBolusUnits = pumpInitialSettings.maxBolusUnits
  37. setupViewController.maxBasalRateUnitsPerHour = pumpInitialSettings.maxBasalRateUnitsPerHour
  38. setupViewController.basalSchedule = pumpInitialSettings.basalSchedule
  39. return setupViewController
  40. }
  41. func updateUIViewController(_: UIViewController, context _: UIViewControllerRepresentableContext<PumpSetupView>) {}
  42. }
  43. }