diff --git a/FreeAPS/Sources/Modules/TargetsEditor/TargetsEditorStateModel.swift b/FreeAPS/Sources/Modules/TargetsEditor/TargetsEditorStateModel.swift index 723af7d0e..f4c02877b 100644 --- a/FreeAPS/Sources/Modules/TargetsEditor/TargetsEditorStateModel.swift +++ b/FreeAPS/Sources/Modules/TargetsEditor/TargetsEditorStateModel.swift @@ -6,7 +6,7 @@ extension TargetsEditor { let timeValues = stride(from: 0.0, to: 1.days.timeInterval, by: 30.minutes.timeInterval).map { $0 } - var rateValues: [Double] { + var rateValues: [Decimal] { switch units { case .mgdL: return stride(from: 72, to: 180.01, by: 1.0).map { $0 } @@ -27,8 +27,8 @@ extension TargetsEditor { units = profile.units items = profile.targets.map { value in let timeIndex = timeValues.firstIndex(of: Double(value.offset * 60)) ?? 0 - let lowIndex = rateValues.firstIndex(of: Double(value.low)) ?? 0 - let highIndex = lowIndex + let lowIndex = rateValues.firstIndex(of: value.low) ?? 0 + let highIndex = rateValues.firstIndex(of: value.high) ?? 0 return Item(lowIndex: lowIndex, highIndex: highIndex, timeIndex: timeIndex) } } @@ -50,14 +50,14 @@ extension TargetsEditor { func save() { let targets = items.map { item -> BGTargetEntry in - let fotmatter = DateFormatter() - fotmatter.timeZone = TimeZone(secondsFromGMT: 0) - fotmatter.dateFormat = "HH:mm:ss" + let formatter = DateFormatter() + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = "HH:mm:ss" let date = Date(timeIntervalSince1970: self.timeValues[item.timeIndex]) let minutes = Int(date.timeIntervalSince1970 / 60) - let low = Decimal(self.rateValues[item.lowIndex]) + let low = self.rateValues[item.lowIndex] let high = low - return BGTargetEntry(low: low, high: high, start: fotmatter.string(from: date), offset: minutes) + return BGTargetEntry(low: low, high: high, start: formatter.string(from: date), offset: minutes) } let profile = BGTargets(units: units, userPrefferedUnits: settingsManager.settings.units, targets: targets) provider.saveProfile(profile) @@ -68,8 +68,7 @@ extension TargetsEditor { let uniq = Array(Set(self.items)) let sorted = uniq.sorted { $0.timeIndex < $1.timeIndex } .map { item -> Item in - guard item.highIndex < item.lowIndex else { return item } - return Item(lowIndex: item.lowIndex, highIndex: item.lowIndex, timeIndex: item.timeIndex) + Item(lowIndex: item.lowIndex, highIndex: item.highIndex, timeIndex: item.timeIndex) } sorted.first?.timeIndex = 0 self.items = sorted