Bladeren bron

Bug fixes.
Fix comma UI bug.
Fix rare case when statistics.json is run with empty glucose (not are how it can actually happen, but found it with simulator).

Jon Mårtensson 3 jaren geleden
bovenliggende
commit
5532bacb94
2 gewijzigde bestanden met toevoegingen van 9 en 27 verwijderingen
  1. 2 23
      FreeAPS/Sources/APS/APSManager.swift
  2. 7 4
      FreeAPS/Sources/Modules/Home/View/HomeRootView.swift

+ 2 - 23
FreeAPS/Sources/APS/APSManager.swift

@@ -916,20 +916,17 @@ final class BaseAPSManager: APSManager, Injectable {
                 var bgArray_1_: [Double] = []
                 var bgArray_7_: [Double] = []
                 var bgArray_30_: [Double] = []
-                var bgArray_90_: [Double] = []
 
                 var bgArrayForTIR: [(bg_: Double, date_: Date)] = []
                 var bgArray_1: [(bg_: Double, date_: Date)] = []
                 var bgArray_7: [(bg_: Double, date_: Date)] = []
                 var bgArray_30: [(bg_: Double, date_: Date)] = []
-                var bgArray_90: [(bg_: Double, date_: Date)] = []
 
                 var medianBG = 0.0
                 var nr_bgs: Decimal = 0
                 var bg_1: Decimal = 0
                 var bg_7: Decimal = 0
                 var bg_30: Decimal = 0
-                var bg_90: Decimal = 0
                 var bg_total: Decimal = 0
                 var j = -1
                 var conversionFactor: Decimal = 1
@@ -957,7 +954,7 @@ final class BaseAPSManager: APSManager, Injectable {
                 numberOfDays = (firstElementTime - lastElementTime).timeInterval / 8.64E4
 
                 // Make arrays for median calculations and calculate averages
-                if endIndex >= 0 {
+                if endIndex >= 0, (glucose.first?.glucose ?? 0) != 0 {
                     repeat {
                         j += 1
                         if glucose[j].glucose > 0 {
@@ -982,14 +979,9 @@ final class BaseAPSManager: APSManager, Injectable {
                                 bgArray_30 = bgArrayForTIR
                                 bgArray_30_ = bgArray
                             }
-                            if (firstElementTime - currentIndexTime).timeInterval <= 7.776E7 { // 90 days
-                                bg_90 = bg / nr_bgs
-                                bgArray_90 = bgArrayForTIR
-                                bgArray_90_ = bgArray
-                            }
                         }
                     } while j != glucose.count - 1
-                }
+                } else { return }
 
                 if nr_bgs > 0 {
                     // Up to 91 days
@@ -1065,13 +1057,6 @@ final class BaseAPSManager: APSManager, Injectable {
                     NGSPa1CStatisticValue_30 = ((bg_30 / conversionFactor) + 46.7) / 28.7
                     IFCCa1CStatisticValue_30 = 10.929 * (NGSPa1CStatisticValue_30 - 2.152)
                 }
-                // 90 days
-                var NGSPa1CStatisticValue_90: Decimal = 0.0
-                var IFCCa1CStatisticValue_90: Decimal = 0.0
-                if nr_bgs > 0 {
-                    NGSPa1CStatisticValue_90 = ((bg_90 / conversionFactor) + 46.7) / 28.7
-                    IFCCa1CStatisticValue_90 = 10.929 * (NGSPa1CStatisticValue_90 - 2.152)
-                }
                 // Total days
                 var NGSPa1CStatisticValue_total: Decimal = 0.0
                 var IFCCa1CStatisticValue_total: Decimal = 0.0
@@ -1096,10 +1081,6 @@ final class BaseAPSManager: APSManager, Injectable {
                 saveMedianToCoreData.median_1 = median.day as NSDecimalNumber
                 saveMedianToCoreData.median_7 = median.week as NSDecimalNumber
                 saveMedianToCoreData.median_30 = median.month as NSDecimalNumber
-                saveMedianToCoreData.median_90 = self.roundDecimal(
-                    Decimal(self.medianCalculation(array: bgArray_90_)),
-                    1
-                ) as NSDecimalNumber
 
                 try? self.coredataContext.save()
 
@@ -1116,7 +1097,6 @@ final class BaseAPSManager: APSManager, Injectable {
                 saveHbA1c.hba1c_1 = NGSPa1CStatisticValue as NSDecimalNumber
                 saveHbA1c.hba1c_7 = NGSPa1CStatisticValue_7 as NSDecimalNumber
                 saveHbA1c.hba1c_30 = NGSPa1CStatisticValue_30 as NSDecimalNumber
-                saveHbA1c.hba1c_90 = NGSPa1CStatisticValue_90 as NSDecimalNumber
 
                 try? self.coredataContext.save()
 
@@ -1220,7 +1200,6 @@ final class BaseAPSManager: APSManager, Injectable {
                 saveAverages.average_1 = bg_1 as NSDecimalNumber
                 saveAverages.average_7 = bg_7 as NSDecimalNumber
                 saveAverages.average_30 = bg_30 as NSDecimalNumber
-                saveAverages.average_90 = bg_90 as NSDecimalNumber
                 try? self.coredataContext.save()
 
                 let avg = Averages(Average: avgs, Median: median)

+ 7 - 4
FreeAPS/Sources/Modules/Home/View/HomeRootView.swift

@@ -242,19 +242,22 @@ extension Home {
             var comma1 = ", "
             var comma2 = comma1
             var comma3 = comma1
-            if targetString == "" { comma2 = "" }
-            if percentString == "" { comma1 = "" }
-            if indefinite, smbToggleString == "" { comma2 = "" }
+            if targetString == "" || percentString == "" { comma1 = "" }
+            if durationString == "" { comma2 = "" }
+            if smbToggleString == "" { comma3 = "" }
+
             if percentString == "", targetString == "" {
                 comma1 = ""
                 comma2 = ""
             }
             if percentString == "", targetString == "", smbToggleString == "" {
                 durationString = ""
+                comma1 = ""
+                comma2 = ""
                 comma3 = ""
             }
             if durationString == "" {
-                comma3 = ""
+                comma2 = ""
             }
             if smbToggleString == "" {
                 comma3 = ""