|
@@ -19,7 +19,7 @@ extension PumpSettingsEditor {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func save(settings: PumpSettings) -> AnyPublisher<Void, Error> {
|
|
func save(settings: PumpSettings) -> AnyPublisher<Void, Error> {
|
|
|
- func save() {
|
|
|
|
|
|
|
+ func save(_ settings: PumpSettings) {
|
|
|
storage.save(settings, as: OpenAPS.Settings.settings)
|
|
storage.save(settings, as: OpenAPS.Settings.settings)
|
|
|
processQueue.async {
|
|
processQueue.async {
|
|
|
self.broadcaster.notify(PumpSettingsObserver.self, on: self.processQueue) {
|
|
self.broadcaster.notify(PumpSettingsObserver.self, on: self.processQueue) {
|
|
@@ -29,7 +29,7 @@ extension PumpSettingsEditor {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
guard let pump = deviceManager?.pumpManager else {
|
|
guard let pump = deviceManager?.pumpManager else {
|
|
|
- save()
|
|
|
|
|
|
|
+ save(settings)
|
|
|
return Just(()).setFailureType(to: Error.self).eraseToAnyPublisher()
|
|
return Just(()).setFailureType(to: Error.self).eraseToAnyPublisher()
|
|
|
}
|
|
}
|
|
|
// Don't ask why 🤦♂️
|
|
// Don't ask why 🤦♂️
|
|
@@ -44,8 +44,21 @@ extension PumpSettingsEditor {
|
|
|
self.processQueue.async {
|
|
self.processQueue.async {
|
|
|
pump.syncDeliveryLimits(limits: limits) { result in
|
|
pump.syncDeliveryLimits(limits: limits) { result in
|
|
|
switch result {
|
|
switch result {
|
|
|
- case .success:
|
|
|
|
|
- save()
|
|
|
|
|
|
|
+ case let .success(actual):
|
|
|
|
|
+ // Store the limits from the pumpManager to ensure the correct values
|
|
|
|
|
+ // Example: Dana pumps don't allow to set these limits, only to fetch them
|
|
|
|
|
+ // This will ensure we always have the correct values stored
|
|
|
|
|
+ save(PumpSettings(
|
|
|
|
|
+ insulinActionCurve: settings.insulinActionCurve,
|
|
|
|
|
+ maxBolus: Decimal(
|
|
|
|
|
+ actual.maximumBolus?
|
|
|
|
|
+ .doubleValue(for: .internationalUnit()) ?? Double(settings.maxBolus)
|
|
|
|
|
+ ),
|
|
|
|
|
+ maxBasal: Decimal(
|
|
|
|
|
+ actual.maximumBasalRate?
|
|
|
|
|
+ .doubleValue(for: .internationalUnitsPerHour) ?? Double(settings.maxBasal)
|
|
|
|
|
+ )
|
|
|
|
|
+ ))
|
|
|
promise(.success(()))
|
|
promise(.success(()))
|
|
|
case let .failure(error):
|
|
case let .failure(error):
|
|
|
promise(.failure(error))
|
|
promise(.failure(error))
|