CGMSettingsView.swift 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import LoopKit
  2. import LoopKitUI
  3. import SwiftUI
  4. import UIKit
  5. extension CGM {
  6. struct CGMSettingsView: UIViewControllerRepresentable {
  7. let cgmManager: CGMManagerUI?
  8. let bluetoothManager: BluetoothStateManager
  9. let unit: GlucoseUnits
  10. weak var completionDelegate: CompletionDelegate?
  11. func makeUIViewController(context _: UIViewControllerRepresentableContext<CGMSettingsView>) -> UIViewController {
  12. let displayGlucosePreference: DisplayGlucosePreference
  13. switch unit {
  14. case .mgdL:
  15. displayGlucosePreference = DisplayGlucosePreference(displayGlucoseUnit: .milligramsPerDeciliter)
  16. case .mmolL:
  17. displayGlucosePreference = DisplayGlucosePreference(displayGlucoseUnit: .millimolesPerLiter)
  18. }
  19. guard let cgmManager = cgmManager else { return UIViewController() }
  20. var vc = cgmManager.settingsViewController(
  21. bluetoothProvider: bluetoothManager,
  22. displayGlucosePreference: displayGlucosePreference,
  23. colorPalette: .default,
  24. allowDebugFeatures: false
  25. )
  26. // vc.cgmManagerOnboardingDelegate =
  27. // vc.completionDelegate = self
  28. vc.completionDelegate = completionDelegate
  29. return vc
  30. }
  31. func updateUIViewController(
  32. _ uiViewController: UIViewController,
  33. context _: UIViewControllerRepresentableContext<CGMSettingsView>
  34. ) {
  35. uiViewController.isModalInPresentation = true
  36. }
  37. }
  38. }