| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import LoopKit
- import LoopKitUI
- import SwiftDate
- import SwiftUI
- extension PumpConfig {
- class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: PumpConfigProvider {
- @Published var setupPump = false
- private(set) var setupPumpType: PumpType = .minimed
- @Published var pumpState: PumpDisplayState?
- private(set) var initialSettings: PumpInitialSettings = .default
- override func subscribe() {
- provider.pumpDisplayState
- .receive(on: DispatchQueue.main)
- .assign(to: \.pumpState, on: self)
- .store(in: &lifetime)
- let basalSchedule = BasalRateSchedule(
- dailyItems: provider.basalProfile().map {
- RepeatingScheduleValue(startTime: $0.minutes.minutes.timeInterval, value: Double($0.rate))
- }
- )
- let pumpSettings = provider.pumpSettings()
- initialSettings = PumpInitialSettings(
- maxBolusUnits: Double(pumpSettings.maxBolus),
- maxBasalRateUnitsPerHour: Double(pumpSettings.maxBasal),
- basalSchedule: basalSchedule!
- )
- }
- func addPump(_ type: PumpType) {
- setupPump = true
- setupPumpType = type
- }
- }
- }
- extension PumpConfig.ViewModel: CompletionDelegate {
- func completionNotifyingDidComplete(_: CompletionNotifying) {
- setupPump = false
- }
- }
- extension PumpConfig.ViewModel: PumpManagerSetupViewControllerDelegate {
- func pumpManagerSetupViewController(_: PumpManagerSetupViewController, didSetUpPumpManager pumpManager: PumpManagerUI) {
- provider.setPumpManager(pumpManager)
- setupPump = false
- }
- }
|