|
|
@@ -286,8 +286,10 @@ final class BaseAPSManager: APSManager, Injectable {
|
|
|
}
|
|
|
|
|
|
func roundBolus(amount: Decimal) -> Decimal {
|
|
|
- guard let pump = pumpManager, verifyStatus() else { return amount }
|
|
|
- return Decimal(pump.roundToSupportedBolusVolume(units: Double(amount)))
|
|
|
+ guard let pump = pumpManager else { return amount }
|
|
|
+ let rounded = Decimal(pump.roundToSupportedBolusVolume(units: Double(amount)))
|
|
|
+ let maxBolus = Decimal(pump.roundToSupportedBolusVolume(units: Double(settingsManager.pumpSettings.maxBolus)))
|
|
|
+ return min(rounded, maxBolus)
|
|
|
}
|
|
|
|
|
|
private var bolusReporter: DoseProgressReporter?
|
|
|
@@ -493,8 +495,8 @@ final class BaseAPSManager: APSManager, Injectable {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- let basalPublisher: AnyPublisher<Void, Error> = {
|
|
|
- guard let rate = suggested.rate, let duration = suggested.duration, verifyStatus() else {
|
|
|
+ let basalPublisher: AnyPublisher<Void, Error> = Deferred { () -> AnyPublisher<Void, Error> in
|
|
|
+ guard let rate = suggested.rate, let duration = suggested.duration, self.verifyStatus() else {
|
|
|
return Just(()).setFailureType(to: Error.self)
|
|
|
.eraseToAnyPublisher()
|
|
|
}
|
|
|
@@ -504,10 +506,10 @@ final class BaseAPSManager: APSManager, Injectable {
|
|
|
return ()
|
|
|
}
|
|
|
.eraseToAnyPublisher()
|
|
|
- }()
|
|
|
+ }.eraseToAnyPublisher()
|
|
|
|
|
|
- let bolusPublisher: AnyPublisher<Void, Error> = {
|
|
|
- guard let units = suggested.units, verifyStatus() else {
|
|
|
+ let bolusPublisher: AnyPublisher<Void, Error> = Deferred { () -> AnyPublisher<Void, Error> in
|
|
|
+ guard let units = suggested.units, self.verifyStatus() else {
|
|
|
return Just(()).setFailureType(to: Error.self)
|
|
|
.eraseToAnyPublisher()
|
|
|
}
|
|
|
@@ -516,7 +518,7 @@ final class BaseAPSManager: APSManager, Injectable {
|
|
|
return ()
|
|
|
}
|
|
|
.eraseToAnyPublisher()
|
|
|
- }()
|
|
|
+ }.eraseToAnyPublisher()
|
|
|
|
|
|
basalPublisher
|
|
|
.flatMap { bolusPublisher }
|