Przeglądaj źródła

null bolus and carb fix. View Refresh Delay Debug setting

Jon Fawcett 6 lat temu
rodzic
commit
e33d441abe

+ 28 - 17
LoopFollow/Controllers/NightScout.swift

@@ -873,17 +873,22 @@ extension MainViewController {
             dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
             let dateString = dateFormatter.date(from: strippedZone)
             let dateTimeStamp = dateString!.timeIntervalSince1970
-            let bolus = currentEntry?["insulin"] as! Double
-            
-            let sgv = findNearestBGbyTime(needle: dateTimeStamp, haystack: bgData, startingIndex: lastFoundIndex)
-            lastFoundIndex = sgv.foundIndex
-            
-            if dateTimeStamp < (dateTimeUtils.getNowTimeIntervalUTC() + (60 * 60)) {
-                // Make the dot
-                let dot = bolusCarbGraphStruct(value: bolus, date: Double(dateTimeStamp), sgv: Int(sgv.sgv))
-                bolusData.append(dot)
+            do {
+                let bolus = try currentEntry?["insulin"] as! Double
+                let sgv = findNearestBGbyTime(needle: dateTimeStamp, haystack: bgData, startingIndex: lastFoundIndex)
+                lastFoundIndex = sgv.foundIndex
+                
+                if dateTimeStamp < (dateTimeUtils.getNowTimeIntervalUTC() + (60 * 60)) {
+                    // Make the dot
+                    let dot = bolusCarbGraphStruct(value: bolus, date: Double(dateTimeStamp), sgv: Int(sgv.sgv))
+                    bolusData.append(dot)
+                }
+            } catch {
+                print("Null Bolus Warning")
             }
             
+           
+            
         }
         
         if UserDefaultsRepository.graphBolus.value {
@@ -949,16 +954,22 @@ extension MainViewController {
             dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
             let dateString = dateFormatter.date(from: strippedZone)
             let dateTimeStamp = dateString!.timeIntervalSince1970
-            let carbs = currentEntry?["carbs"] as! Double
             
-            let sgv = findNearestBGbyTime(needle: dateTimeStamp, haystack: bgData, startingIndex: lastFoundIndex)
-            lastFoundIndex = sgv.foundIndex
-            
-            if dateTimeStamp < (dateTimeUtils.getNowTimeIntervalUTC() + (60 * 60)) {
-                // Make the dot
-                let dot = bolusCarbGraphStruct(value: carbs, date: Double(dateTimeStamp), sgv: Int(sgv.sgv))
-                carbData.append(dot)
+            do {
+                let carbs = try currentEntry?["carbs"] as! Double
+                let sgv = findNearestBGbyTime(needle: dateTimeStamp, haystack: bgData, startingIndex: lastFoundIndex)
+                lastFoundIndex = sgv.foundIndex
+                
+                if dateTimeStamp < (dateTimeUtils.getNowTimeIntervalUTC() + (60 * 60)) {
+                    // Make the dot
+                    let dot = bolusCarbGraphStruct(value: carbs, date: Double(dateTimeStamp), sgv: Int(sgv.sgv))
+                    carbData.append(dot)
+                }
+            } catch {
+                print("Null Carb Warning")
             }
+            
+            
         }
         
         if UserDefaultsRepository.graphCarbs.value {

+ 2 - 2
LoopFollow/ViewControllers/MainViewController.swift

@@ -66,7 +66,7 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
     
     // View Delay Timer
     var viewTimer = Timer()
-    let viewTimeInterval: TimeInterval = 10.0
+    let viewTimeInterval: TimeInterval = UserDefaultsRepository.viewRefreshDelay.value
     
     // Check Alarms Timer
     // Don't check within 1 minute of alarm triggering to give the snoozer time to save data
@@ -335,7 +335,7 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
         store.requestAccess(to: .event) {(granted, error) in
             if !granted { return }
             
-            if UserDefaultsRepository.calendarIdentifier.value == "" {
+            if UserDefaultsRepository.calendarIdentifier.value != "" {
                 
                 // Create Event info
                 let deltaBG = self.bgData[self.bgData.count - 1].sgv -  self.bgData[self.bgData.count - 2].sgv as Int

+ 15 - 0
LoopFollow/ViewControllers/SettingsViewController.swift

@@ -408,6 +408,21 @@ class SettingsViewController: FormViewController {
                     guard let value = row.value else { return }
                     UserDefaultsRepository.graphPrediction.value = value
             }
+        
+        <<< StepperRow("viewRefreshDelay") { row in
+            row.title = "View Refresh Delay"
+            row.cell.stepper.stepValue = 1
+            row.cell.stepper.minimumValue = 5
+            row.cell.stepper.maximumValue = 30
+            row.value = Double(UserDefaultsRepository.viewRefreshDelay.value)
+            row.displayValueFor = { value in
+                guard let value = value else { return nil }
+                return "\(Int(value))"
+            }
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.viewRefreshDelay.value = Double(value)
+        }
     }
 
 }

+ 1 - 0
LoopFollow/repository/UserDefaults.swift

@@ -52,6 +52,7 @@ class UserDefaultsRepository {
         static let graphBolus = UserDefaultsValue<Bool>(key: "graphBolus", default: true)
         static let graphCarbs = UserDefaultsValue<Bool>(key: "graphCarbs", default: true)
         static let graphPrediction = UserDefaultsValue<Bool>(key: "graphPrediction", default: true)
+        static let viewRefreshDelay = UserDefaultsValue<Double>(key: "viewRefreshDelay", default: 15.0)