diff --git a/MinimedKit/PumpManager/EnliteSensorDisplayable.swift b/MinimedKit/PumpManager/EnliteSensorDisplayable.swift index c567b11..4dd0d28 100644 --- a/MinimedKit/PumpManager/EnliteSensorDisplayable.swift +++ b/MinimedKit/PumpManager/EnliteSensorDisplayable.swift @@ -9,7 +9,7 @@ import Foundation import HealthKit import LoopKit - +import LoopAlgorithm struct EnliteSensorDisplayable: Equatable, GlucoseDisplayable { public let isStateValid: Bool diff --git a/MinimedKit/PumpManager/MinimedPumpManager.swift b/MinimedKit/PumpManager/MinimedPumpManager.swift index 7b67ad7..5a11a58 100644 --- a/MinimedKit/PumpManager/MinimedPumpManager.swift +++ b/MinimedKit/PumpManager/MinimedPumpManager.swift @@ -17,7 +17,9 @@ public protocol MinimedPumpManagerStateObserver: AnyObject { public class MinimedPumpManager: RileyLinkPumpManager { - public static let pluginIdentifier = "Minimed500" + public static let managerIdentifier = "Minimed500" + + public var pluginIdentifier: String { Self.managerIdentifier } // Primarily used for testing public let dateGenerator: () -> Date @@ -28,7 +30,7 @@ public class MinimedPumpManager: RileyLinkPumpManager { self.dateGenerator = dateGenerator self.hkDevice = HKDevice( - name: MinimedPumpManager.pluginIdentifier, + name: MinimedPumpManager.managerIdentifier, manufacturer: "Medtronic", model: state.pumpModel.rawValue, hardwareVersion: nil, @@ -489,7 +491,7 @@ extension MinimedPumpManager { } private static var pumpBatteryLowAlertIdentifier: Alert.Identifier { - return Alert.Identifier(managerIdentifier: pluginIdentifier, alertIdentifier: "PumpBatteryLow") + return Alert.Identifier(managerIdentifier: managerIdentifier, alertIdentifier: "PumpBatteryLow") } private var pumpBatteryLowAlert: Alert { @@ -554,7 +556,7 @@ extension MinimedPumpManager { } private static var pumpReservoirEmptyAlertIdentifier: Alert.Identifier { - return Alert.Identifier(managerIdentifier: pluginIdentifier, alertIdentifier: "PumpReservoirEmpty") + return Alert.Identifier(managerIdentifier: managerIdentifier, alertIdentifier: "PumpReservoirEmpty") } private var pumpReservoirEmptyAlert: Alert { @@ -565,7 +567,7 @@ extension MinimedPumpManager { } private static var pumpReservoirLowAlertIdentifier: Alert.Identifier { - return Alert.Identifier(managerIdentifier: pluginIdentifier, alertIdentifier: "PumpReservoirLow") + return Alert.Identifier(managerIdentifier: managerIdentifier, alertIdentifier: "PumpReservoirLow") } private func pumpReservoirLowAlertForAmount(_ units: Double, andTimeRemaining remaining: TimeInterval?) -> Alert { @@ -755,9 +757,11 @@ extension MinimedPumpManager { // During reconciliation, some pump events may be reconciled as pending doses and removed. Remaining events should be annotated with current insulinType let remainingHistoryEvents = self.reconcilePendingDosesWith(newPumpEvents, fetchedAt: self.dateGenerator()).map { (event) -> NewPumpEvent in + var dose = event.dose + dose?.insulinType = insulinType return NewPumpEvent( date: event.date, - dose: event.dose?.annotated(with: insulinType), + dose: dose, raw: event.raw, title: event.title, type: event.type) diff --git a/MinimedKitUI/MinimedHUDProvider.swift b/MinimedKitUI/MinimedHUDProvider.swift index d02e8b8..b88f481 100644 --- a/MinimedKitUI/MinimedHUDProvider.swift +++ b/MinimedKitUI/MinimedHUDProvider.swift @@ -15,7 +15,7 @@ import SwiftUI class MinimedHUDProvider: HUDProvider { var managerIdentifier: String { - return MinimedPumpManager.pluginIdentifier + return MinimedPumpManager.managerIdentifier } private var state: MinimedPumpManagerState { diff --git a/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift b/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift index e3144d0..e35759e 100644 --- a/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift +++ b/MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift @@ -161,7 +161,7 @@ class MinimedPumpSettingsViewModel: ObservableObject { switch basalDeliveryState { case .active(_), .initiatingTempBasal: return true - case .tempBasal(_), .cancelingTempBasal, .suspending, .suspended(_), .resuming, .none: + default: return false } } @@ -188,8 +188,6 @@ class MinimedPumpSettingsViewModel: ObservableObject { var basalDeliveryRate: Double? { switch basalDeliveryState { - case .suspending, .resuming, .suspended, .none, .initiatingTempBasal, .cancelingTempBasal: - return nil case .active: // return scheduled basal rate var calendar = Calendar(identifier: .gregorian) @@ -197,6 +195,8 @@ class MinimedPumpSettingsViewModel: ObservableObject { return pumpManager.state.basalSchedule.currentRate(using: calendar) case .tempBasal(let dose): return dose.unitsPerHour + default: + return nil } } @@ -273,7 +273,7 @@ extension PumpManagerStatus.BasalDeliveryState { var shownAction: SuspendResumeAction { switch self { - case .active, .suspending, .tempBasal, .cancelingTempBasal, .initiatingTempBasal: + case .active, .suspending, .tempBasal, .cancelingTempBasal, .initiatingTempBasal, .pumpInoperable: return .suspend case .suspended, .resuming: return .resume @@ -286,7 +286,7 @@ extension PumpManagerStatus.BasalDeliveryState { return LocalizedString("Suspend Delivery", comment: "Title text for button to suspend insulin delivery") case .suspending: return LocalizedString("Suspending", comment: "Title text for button when insulin delivery is in the process of being stopped") - case .suspended: + case .suspended, .pumpInoperable: return LocalizedString("Resume Delivery", comment: "Title text for button to resume insulin delivery") case .resuming: return LocalizedString("Resuming", comment: "Title text for button when insulin delivery is in the process of being resumed")