From 474972ebb7a36d67823a127c01f5b083ba896225 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Mon, 25 Sep 2023 15:49:30 -0300 Subject: [PATCH 1/3] [COASTAL-1291] plugin identifier is no longer class property (#6) --- MinimedKit/PumpManager/MinimedPumpManager.swift | 12 +++++++----- MinimedKitUI/MinimedHUDProvider.swift | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/MinimedKit/PumpManager/MinimedPumpManager.swift b/MinimedKit/PumpManager/MinimedPumpManager.swift index eced913..61da788 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 { 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 { From 915d30d6460d58dbf007cd96cfd276e44fd3e3a2 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Fri, 1 Mar 2024 15:13:20 -0600 Subject: [PATCH 2/3] Types moved to LoopAlgorithm --- MinimedKit/PumpManager/EnliteSensorDisplayable.swift | 2 +- MinimedKit/PumpManager/MinimedPumpManager.swift | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) 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 74152d1..3e574f5 100644 --- a/MinimedKit/PumpManager/MinimedPumpManager.swift +++ b/MinimedKit/PumpManager/MinimedPumpManager.swift @@ -757,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) From 50b0fe10436201af1ea872769fd1bbb2a8f607e1 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Fri, 7 Jun 2024 14:12:52 -0300 Subject: [PATCH 3/3] [LOOP-4801] adding pump inoperable (#9) --- MinimedKitUI/Views/MinimedPumpSettingsViewModel.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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")