Просмотр исходного кода

respect regional decimal separator for target label in OverrideRootView

Mike Plante 1 год назад
Родитель
Сommit
4d2b87e867

+ 1 - 1
FreeAPS/Sources/Modules/OverrideConfig/OverrideStateModel.swift

@@ -763,7 +763,7 @@ func formatHrMin(_ durationInMinutes: Int) -> String {
     }
 }
 
- func convertToMinutes(_ hours: Int, _ minutes: Int) -> Decimal {
+func convertToMinutes(_ hours: Int, _ minutes: Int) -> Decimal {
     let totalMinutes = (hours * 60) + minutes
     return Decimal(max(0, totalMinutes))
 }

+ 4 - 2
FreeAPS/Sources/Modules/OverrideConfig/View/OverrideRootView.swift

@@ -494,7 +494,6 @@ extension OverrideConfig {
         }
 
         @ViewBuilder private func overridesView(for preset: OverrideStored) -> some View {
-            let target = (state.units == .mgdL ? preset.target : preset.target?.decimalValue.asMmolL as NSDecimalNumber?) ?? 0
             let duration = (preset.duration ?? 0) as Decimal
             let name = preset.name ?? ""
             let percentage = preset.percentage
@@ -504,7 +503,10 @@ extension OverrideConfig {
                 ? " \(formatTimeRange(start: preset.start?.stringValue, end: preset.end?.stringValue))"
                 : ""
             let smbString = (preset.smbIsOff || preset.smbIsScheduledOff) ? "SMBs Off\(scheduledSMBstring)" : ""
-            let targetString = target != 0 ? "\(target.description) \(state.units.rawValue)" : ""
+            let targetValue = (preset.target == 0 || preset.target == nil) ? "" :
+                (state.units == .mgdL ? preset.target?.description ?? "" : preset.target?.decimalValue.formattedAsMmolL)
+
+            let targetString = (targetValue?.isEmpty ?? true) ? "" : "\(targetValue!) \(state.units.rawValue)"
             let maxMinutesSMB = (preset.smbMinutes as Decimal?) != nil ? (preset.smbMinutes ?? 0) as Decimal : 0
             let maxMinutesUAM = (preset.uamMinutes as Decimal?) != nil ? (preset.uamMinutes ?? 0) as Decimal : 0
             let maxSmbMinsString = (