PumpSetupView.swift 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import LoopKit
  2. import LoopKitUI
  3. import MinimedKit
  4. import MinimedKitUI
  5. import OmniKitUI
  6. import RileyLinkBLEKit
  7. import RileyLinkKit
  8. import RileyLinkKitUI
  9. import SwiftUI
  10. import UIKit
  11. extension PumpConfig {
  12. struct PumpSetupView: UIViewControllerRepresentable {
  13. let pumpType: PumpType
  14. let deviceProvider: RileyLinkDeviceProvider
  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 = UIStoryboard(
  22. name: "MinimedPumpManager",
  23. bundle: Bundle(for: MinimedPumpManagerSetupViewController.self)
  24. ).instantiateViewController(withIdentifier: "DevelopmentPumpSetup") as! MinimedPumpManagerSetupViewController
  25. case .omnipod:
  26. setupViewController = UIStoryboard(
  27. name: "OmnipodPumpManager",
  28. bundle: Bundle(for: OmnipodPumpManagerSetupViewController.self)
  29. ).instantiateViewController(withIdentifier: "DevelopmentPumpSetup") as! OmnipodPumpManagerSetupViewController
  30. }
  31. if let rileyLinkManagerViewController = setupViewController as? RileyLinkManagerSetupViewController {
  32. rileyLinkManagerViewController
  33. .rileyLinkPumpManager = RileyLinkPumpManager(rileyLinkDeviceProvider: deviceProvider)
  34. }
  35. setupViewController.setupDelegate = setupDelegate
  36. setupViewController.completionDelegate = completionDelegate
  37. return setupViewController
  38. }
  39. func updateUIViewController(_: UIViewController, context _: UIViewControllerRepresentableContext<PumpSetupView>) {}
  40. }
  41. }