PumpSetupView.swift 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import LoopKit
  2. import LoopKitUI
  3. import MinimedKit
  4. import MinimedKitUI
  5. import MockKit
  6. import MockKitUI
  7. import OmniKit
  8. import OmniKitUI
  9. import SwiftUI
  10. import UIKit
  11. extension PumpConfig {
  12. struct PumpSetupView: UIViewControllerRepresentable {
  13. let pumpType: PumpType
  14. let pumpInitialSettings: PumpInitialSettings
  15. weak var completionDelegate: CompletionDelegate?
  16. weak var setupDelegate: PumpManagerSetupViewControllerDelegate?
  17. func makeUIViewController(context _: UIViewControllerRepresentableContext<PumpSetupView>) -> UIViewController {
  18. var setupViewController: PumpManagerSetupViewController & UIViewController & CompletionNotifying
  19. switch pumpType {
  20. case .minimed:
  21. setupViewController = MinimedPumpManager.setupViewController()
  22. case .omnipod:
  23. setupViewController = OmnipodPumpManager.setupViewController()
  24. case .simulator:
  25. setupViewController = MockPumpManager.setupViewController()
  26. }
  27. setupViewController.setupDelegate = setupDelegate
  28. setupViewController.completionDelegate = completionDelegate
  29. setupViewController.maxBolusUnits = pumpInitialSettings.maxBolusUnits
  30. setupViewController.maxBasalRateUnitsPerHour = pumpInitialSettings.maxBasalRateUnitsPerHour
  31. setupViewController.basalSchedule = pumpInitialSettings.basalSchedule
  32. return setupViewController
  33. }
  34. func updateUIViewController(_: UIViewController, context _: UIViewControllerRepresentableContext<PumpSetupView>) {}
  35. }
  36. }