Procházet zdrojové kódy

CGM Readings in statPanel,
when tapping.
Update Loops/Errors not just when tapping

Jon Mårtensson před 3 roky
rodič
revize
42f154a4eb

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

@@ -1116,9 +1116,13 @@ final class BaseAPSManager: APSManager, Injectable {
         // round output values
         daysBG = roundDouble(daysBG, 1)
 
+        let glucose24Hours = storage.retrieve(OpenAPS.Monitor.glucose, as: [BloodGlucose].self)
+        let nrOfCGMReadings = glucose24Hours?.count ?? 0
+
         let loopstat = LoopCycles(
             loops: Int(successNR + errorNR),
             errors: Int(errorNR),
+            readings: nrOfCGMReadings,
             success_rate: Decimal(round(successRate ?? 0)),
             avg_interval: roundDecimal(Decimal(averageIntervalLoops), 1),
             median_interval: roundDecimal(Decimal(medianInterval), 1),
@@ -1276,8 +1280,6 @@ final class BaseAPSManager: APSManager, Injectable {
 
         let variance = Variance(SD: standardDeviations, CV: cvs)
 
-        // let nrOfCGMReadings = glucose?.count ?? 0
-
         let dailystat = Statistics(
             created_at: Date(),
             iPhone: UIDevice.current.getDeviceId,

+ 3 - 0
FreeAPS/Sources/Localizations/Main/en.lproj/Localizable.strings

@@ -1217,6 +1217,9 @@ Enact a temp Basal or a temp target */
 /* Median BG */
 "Median" = "Median";
 
+/* CGM readings in statPanel */
+"Readings" = "Readings";
+
 /* Normal BG (within TIR) */
 "Normal" = "Normal";
 

+ 3 - 0
FreeAPS/Sources/Localizations/Main/sv.lproj/Localizable.strings

@@ -1213,6 +1213,9 @@ Enact a temp Basal or a temp target */
 /* Median BG */
 "Median" = "Medianvärde";
 
+/* CGM readings in statPanel */
+"Readings" = "Avläsningar";
+
 /* Normal BG (within TIR) */
 "Normal" = "Normalvärde";
 

+ 2 - 0
FreeAPS/Sources/Models/Statistics.swift

@@ -87,6 +87,7 @@ extension Statistics {
 struct LoopCycles: JSON, Equatable {
     var loops: Int
     var errors: Int
+    var readings: Int
     var success_rate: Decimal
     var avg_interval: Decimal
     var median_interval: Decimal
@@ -141,6 +142,7 @@ extension LoopCycles {
     private enum CodingKeys: String, CodingKey {
         case loops
         case errors
+        case readings
         case success_rate
         case avg_interval
         case median_interval

+ 18 - 10
FreeAPS/Sources/Modules/Home/View/HomeRootView.swift

@@ -11,10 +11,11 @@ extension Home {
         @State var isStatusPopupPresented = false
         @State var selectedState: durationState
 
-        // Average/Median and CV/SD titles and values switches when you click them
+        // Average/Median/Readings and CV/SD titles and values switches when you tap them
         @State var averageOrMedianTitle = NSLocalizedString("Average", comment: "")
         @State var median_ = ""
         @State var average_ = ""
+        @State var readings = ""
         @State var averageOrmedian = ""
         @State var CV_or_SD_Title = NSLocalizedString("CV", comment: "CV")
         @State var cv_ = ""
@@ -22,7 +23,6 @@ extension Home {
         @State var CVorSD = ""
         // Switch between Loops and Errors when tapping in ststPanel
         @State var loopStatTitle = NSLocalizedString("Loops", comment: "Nr of Loops in statPanel")
-        @State var loopsOrerrors = ""
 
         private var numberFormatter: NumberFormatter {
             let formatter = NumberFormatter()
@@ -370,19 +370,30 @@ extension Home {
                     // Average as default. Changes to Median when clicking.
                     let textAverageTitle = NSLocalizedString("Average", comment: "")
                     let textMedianTitle = NSLocalizedString("Median", comment: "")
+                    let cgmReadingsTitle = NSLocalizedString("Readings", comment: "CGM readings in statPanel")
 
                     HStack {
                         Text(averageOrMedianTitle).font(.footnote).foregroundColor(.secondary)
                         if averageOrMedianTitle == textAverageTitle {
                             Text(averageOrmedian == "" ? average_ : average_).font(.footnote)
-                        } else {
+                        } else if averageOrMedianTitle == textMedianTitle {
                             Text(averageOrmedian == "" ? median_ : median_).font(.footnote)
+                        } else if averageOrMedianTitle == cgmReadingsTitle {
+                            Text(
+                                averageOrmedian != "0" ? tirFormatter
+                                    .string(from: (state.statistics?.Statistics.LoopCycles.readings ?? 0) as NSNumber) ?? "" : ""
+                            )
+                            .font(.footnote)
                         }
                     }.onTapGesture {
                         if averageOrMedianTitle == textAverageTitle {
                             averageOrMedianTitle = textMedianTitle
                             averageOrmedian = median_
-                        } else {
+                        } else if averageOrMedianTitle == textMedianTitle {
+                            averageOrMedianTitle = cgmReadingsTitle
+                            averageOrmedian = tirFormatter
+                                .string(from: (state.statistics?.Statistics.LoopCycles.readings ?? 0) as NSNumber) ?? ""
+                        } else if averageOrMedianTitle == cgmReadingsTitle {
                             averageOrMedianTitle = textAverageTitle
                             averageOrmedian = average_
                         }
@@ -447,19 +458,16 @@ extension Home {
                         HStack {
                             Text(loopStatTitle).font(.footnote).foregroundColor(.secondary)
                             Text(
-                                loopsOrerrors == "" ? tirFormatter
+                                loopStatTitle == loopTitle ? tirFormatter
                                     .string(from: (state.statistics?.Statistics.LoopCycles.loops ?? 0) as NSNumber) ?? "" :
-                                    loopsOrerrors
+                                    tirFormatter
+                                    .string(from: (state.statistics?.Statistics.LoopCycles.errors ?? 0) as NSNumber) ?? ""
                             ).font(.footnote)
                         }.onTapGesture {
                             if loopStatTitle == loopTitle {
                                 loopStatTitle = errorTitle
-                                loopsOrerrors = tirFormatter
-                                    .string(from: (state.statistics?.Statistics.LoopCycles.errors ?? 0) as NSNumber) ?? ""
                             } else if loopStatTitle == errorTitle {
                                 loopStatTitle = loopTitle
-                                loopsOrerrors = tirFormatter
-                                    .string(from: (state.statistics?.Statistics.LoopCycles.loops ?? 0) as NSNumber) ?? ""
                             }
                         }