Kaynağa Gözat

Fix basal rounding if pump not set

Ivan Valkou 5 yıl önce
ebeveyn
işleme
fd93953a15

+ 1 - 1
FreeAPS/Sources/Models/BloodGlucose.swift

@@ -33,7 +33,7 @@ struct BloodGlucose: JSON, Identifiable, Hashable {
     var isStateValid: Bool { sgv ?? 0 >= 39 && noise ?? 1 != 4 }
 }
 
-enum GlucoseUnits: String, JSON {
+enum GlucoseUnits: String, JSON, Equatable {
     case mgdL = "mg/dL"
     case mmolL = "mmol/L"
 

+ 1 - 1
FreeAPS/Sources/Models/FreeAPSSettings.swift

@@ -1,6 +1,6 @@
 import Foundation
 
-struct FreeAPSSettings: JSON {
+struct FreeAPSSettings: JSON, Equatable {
     var units: GlucoseUnits
     var closedLoop: Bool
     var allowAnnouncements: Bool

+ 1 - 1
FreeAPS/Sources/Modules/BasalProfileEditor/BasalProfileEditorViewModel.swift

@@ -15,7 +15,7 @@ extension BasalProfileEditor {
         }
 
         override func subscribe() {
-            rateValues = provider.supportedBasalRates ?? stride(from: 0.05, to: 10.01, by: 0.05).map { Decimal($0) }
+            rateValues = provider.supportedBasalRates ?? stride(from: Decimal(0.05), to: 10.01, by: 0.05).map { $0 }
             items = provider.profile.map { value in
                 let timeIndex = timeValues.firstIndex(of: Double(value.minutes * 60)) ?? 0
                 let rateIndex = rateValues.firstIndex(of: value.rate) ?? 0

+ 6 - 4
FreeAPS/Sources/Services/SettingsManager/SettingsManager.swift

@@ -16,10 +16,12 @@ final class BaseSettingsManager: SettingsManager, Injectable {
 
     var settings: FreeAPSSettings {
         didSet {
-            save()
-            DispatchQueue.main.async {
-                self.broadcaster.notify(SettingsObserver.self, on: .main) {
-                    $0.settingsDidChange(self.settings)
+            if oldValue != settings {
+                save()
+                DispatchQueue.main.async {
+                    self.broadcaster.notify(SettingsObserver.self, on: .main) {
+                        $0.settingsDidChange(self.settings)
+                    }
                 }
             }
         }