|
@@ -33,6 +33,7 @@ extension DataTable {
|
|
|
units = settingsManager.settings.units
|
|
units = settingsManager.settings.units
|
|
|
maxBolus = provider.pumpSettings().maxBolus
|
|
maxBolus = provider.pumpSettings().maxBolus
|
|
|
broadcaster.register(DeterminationObserver.self, observer: self)
|
|
broadcaster.register(DeterminationObserver.self, observer: self)
|
|
|
|
|
+ broadcaster.register(SettingsObserver.self, observer: self)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func isGlucoseDataFresh(_ glucoseDate: Date?) -> Bool {
|
|
func isGlucoseDataFresh(_ glucoseDate: Date?) -> Bool {
|
|
@@ -90,6 +91,14 @@ extension DataTable {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ func addManualGlucose() {
|
|
|
|
|
+ // Always save value in mg/dL
|
|
|
|
|
+ let glucose = units == .mmolL ? manualGlucose.asMgdL : manualGlucose
|
|
|
|
|
+ let glucoseAsInt = Int(glucose)
|
|
|
|
|
+
|
|
|
|
|
+ glucoseStorage.addManualGlucose(glucose: glucoseAsInt)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Carb and FPU deletion from history
|
|
// Carb and FPU deletion from history
|
|
|
/// - **Parameter**: NSManagedObjectID to be able to transfer the object safely from one thread to another thread
|
|
/// - **Parameter**: NSManagedObjectID to be able to transfer the object safely from one thread to another thread
|
|
|
func invokeCarbDeletionTask(_ treatmentObjectID: NSManagedObjectID) {
|
|
func invokeCarbDeletionTask(_ treatmentObjectID: NSManagedObjectID) {
|
|
@@ -239,37 +248,18 @@ extension DataTable {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- func addManualGlucose() {
|
|
|
|
|
- let glucose = units == .mmolL ? manualGlucose.asMgdL : manualGlucose
|
|
|
|
|
- let glucoseAsInt = Int(glucose)
|
|
|
|
|
-
|
|
|
|
|
- // save to core data
|
|
|
|
|
- coredataContext.perform {
|
|
|
|
|
- let newItem = GlucoseStored(context: self.coredataContext)
|
|
|
|
|
- newItem.id = UUID()
|
|
|
|
|
- newItem.date = Date()
|
|
|
|
|
- newItem.glucose = Int16(glucoseAsInt)
|
|
|
|
|
- newItem.isManual = true
|
|
|
|
|
- newItem.isUploadedToNS = false
|
|
|
|
|
- newItem.isUploadedToHealth = false
|
|
|
|
|
- newItem.isUploadedToTidepool = false
|
|
|
|
|
-
|
|
|
|
|
- do {
|
|
|
|
|
- guard self.coredataContext.hasChanges else { return }
|
|
|
|
|
- try self.coredataContext.save()
|
|
|
|
|
- } catch {
|
|
|
|
|
- print(error.localizedDescription)
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-extension DataTable.StateModel: DeterminationObserver {
|
|
|
|
|
|
|
+extension DataTable.StateModel: DeterminationObserver, SettingsObserver {
|
|
|
func determinationDidUpdate(_: Determination) {
|
|
func determinationDidUpdate(_: Determination) {
|
|
|
DispatchQueue.main.async {
|
|
DispatchQueue.main.async {
|
|
|
self.waitForSuggestion = false
|
|
self.waitForSuggestion = false
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ func settingsDidChange(_: FreeAPSSettings) {
|
|
|
|
|
+ units = settingsManager.settings.units
|
|
|
|
|
+ maxBolus = provider.pumpSettings().maxBolus
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|