diff --git a/Loop/Extensions/NewPumpEvent.swift b/Loop/Extensions/NewPumpEvent.swift index 14fec116f1..9c622af413 100644 --- a/Loop/Extensions/NewPumpEvent.swift +++ b/Loop/Extensions/NewPumpEvent.swift @@ -10,13 +10,25 @@ import InsulinKit extension NewPumpEvent { + /* + It takes a MM pump about 40s to deliver 1 Unit while bolusing + See: http://www.healthline.com/diabetesmine/ask-dmine-speed-insulin-pumps#3 + */ + private static let deliveryUnitsPerMinute = 1.5 + /// Constructs a pump event placeholder representing a bolus just enacted. /// /// - Parameters: /// - units: The units of insulin requested /// - date: The date the bolus was enacted static func enactedBolus(units: Double, at date: Date) -> NewPumpEvent { - let dose = DoseEntry(type: .bolus, startDate: date, endDate: date, value: units, unit: .units) + let dose = DoseEntry( + type: .bolus, + startDate: date, + endDate: date.addingTimeInterval(.minutes(units / NewPumpEvent.deliveryUnitsPerMinute)), + value: units, + unit: .units + ) return self.init( date: date, diff --git a/Loop/Managers/DeviceDataManager.swift b/Loop/Managers/DeviceDataManager.swift index 0d3f1367eb..a01eb9afed 100644 --- a/Loop/Managers/DeviceDataManager.swift +++ b/Loop/Managers/DeviceDataManager.swift @@ -625,6 +625,8 @@ final class DeviceDataManager { if let timeZone = UserDefaults.standard.pumpTimeZone { pumpState.timeZone = timeZone + } else { + UserDefaults.standard.pumpTimeZone = TimeZone.current } if let pumpModelNumber = UserDefaults.standard.pumpModelNumber {