PumpConfigProvider.swift 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import Combine
  2. import LoopKitUI
  3. import RileyLinkBLEKit
  4. extension PumpConfig {
  5. final class Provider: BaseProvider, PumpConfigProvider {
  6. @Injected() var apsManager: APSManager!
  7. func setPumpManager(_ manager: PumpManagerUI) {
  8. apsManager.pumpManager = manager
  9. }
  10. var pumpDisplayState: AnyPublisher<PumpDisplayState?, Never> {
  11. apsManager.pumpDisplayState.eraseToAnyPublisher()
  12. }
  13. func getBasalProfile() async -> [BasalProfileEntry] {
  14. await storage.retrieveAsync(OpenAPS.Settings.basalProfile, as: [BasalProfileEntry].self)
  15. ?? [BasalProfileEntry](from: OpenAPS.defaults(for: OpenAPS.Settings.basalProfile))
  16. ?? []
  17. }
  18. func pumpSettings() -> PumpSettings {
  19. storage.retrieve(OpenAPS.Settings.settings, as: PumpSettings.self)
  20. ?? PumpSettings(from: OpenAPS.defaults(for: OpenAPS.Settings.settings))
  21. ?? PumpSettings(insulinActionCurve: 10, maxBolus: 10, maxBasal: 2)
  22. }
  23. var alertNotAck: AnyPublisher<Bool, Never> {
  24. deviceManager.alertHistoryStorage.alertNotAck.eraseToAnyPublisher()
  25. }
  26. func initialAlertNotAck() -> Bool {
  27. deviceManager.alertHistoryStorage.recentNotAck().isNotEmpty
  28. }
  29. }
  30. }