Browse Source

Update: override location, scalable Y graph, dot size
Fix: target-only override display

Jon Fawcett 5 years ago
parent
commit
c883b166ea

+ 3 - 4
LoopFollow/Controllers/AppStateController.swift

@@ -24,10 +24,9 @@ enum ChartSettingsChangeEnum: Int {
   case predictionToLoadChanged = 32
   case minBasalScaleChanged = 64
   case minBGScaleChanged = 128
-  case minBGValueChanged = 256
-  case overrideDisplayLocationChanged = 512
-  case lowLineChanged = 1024
-  case highLineChanged = 2048
+  case overrideDisplayLocationChanged = 256
+  case lowLineChanged = 512
+  case highLineChanged = 1024
 }
 
 // General Settings Flags

+ 181 - 116
LoopFollow/Controllers/Graphs.swift

@@ -53,7 +53,7 @@ extension MainViewController {
         
         // Setup BG line details
         let lineBG = LineChartDataSet(entries:bgChartEntry, label: "")
-        lineBG.circleRadius = 3
+        lineBG.circleRadius = CGFloat(globalVariables.dotBG)
         lineBG.circleColors = [NSUIColor.systemGreen]
         lineBG.drawCircleHoleEnabled = false
         lineBG.axisDependency = YAxis.AxisDependency.right
@@ -76,7 +76,7 @@ extension MainViewController {
         // Setup Prediction line details
         var predictionChartEntry = [ChartDataEntry]()
         let linePrediction = LineChartDataSet(entries:predictionChartEntry, label: "")
-        linePrediction.circleRadius = 3
+        linePrediction.circleRadius = CGFloat(globalVariables.dotBG)
         linePrediction.circleColors = [NSUIColor.systemPurple]
         linePrediction.colors = [NSUIColor.systemPurple]
         linePrediction.drawCircleHoleEnabled = false
@@ -118,7 +118,7 @@ extension MainViewController {
         // Boluses
         var chartEntryBolus = [ChartDataEntry]()
         let lineBolus = LineChartDataSet(entries:chartEntryBolus, label: "")
-        lineBolus.circleRadius = 5
+        lineBolus.circleRadius = CGFloat(globalVariables.dotBolus)
         lineBolus.circleColors = [NSUIColor.systemBlue.withAlphaComponent(0.75)]
         lineBolus.drawCircleHoleEnabled = false
         lineBolus.setDrawHighlightIndicators(false)
@@ -130,14 +130,11 @@ extension MainViewController {
         lineBolus.fillFormatter = BolusFillFormatter()
         lineBolus.fillColor = NSUIColor.systemBlue
         lineBolus.fillAlpha = 0.6
-        if UserDefaultsRepository.graphBars.value {
-            lineBolus.drawCirclesEnabled = false
-            lineBolus.drawFilledEnabled = true
-        } else {
+        
             lineBolus.drawCirclesEnabled = true
             lineBolus.drawFilledEnabled = false
-        }
-        if UserDefaultsRepository.showValues.value {
+        
+        if UserDefaultsRepository.showValues.value  {
             lineBolus.drawValuesEnabled = true
             lineBolus.highlightEnabled = false
         } else {
@@ -150,7 +147,7 @@ extension MainViewController {
         // Carbs
         var chartEntryCarbs = [ChartDataEntry]()
         let lineCarbs = LineChartDataSet(entries:chartEntryCarbs, label: "")
-        lineCarbs.circleRadius = 5
+        lineCarbs.circleRadius = CGFloat(globalVariables.dotCarb)
         lineCarbs.circleColors = [NSUIColor.systemOrange.withAlphaComponent(0.75)]
         lineCarbs.drawCircleHoleEnabled = false
         lineCarbs.setDrawHighlightIndicators(false)
@@ -162,13 +159,10 @@ extension MainViewController {
         lineCarbs.fillFormatter = CarbFillFormatter()
         lineCarbs.fillColor = NSUIColor.systemOrange
         lineCarbs.fillAlpha = 0.6
-        if UserDefaultsRepository.graphBars.value {
-            lineCarbs.drawCirclesEnabled = false
-            lineCarbs.drawFilledEnabled = true
-        } else {
+       
             lineCarbs.drawCirclesEnabled = true
             lineCarbs.drawFilledEnabled = false
-        }
+        
         if UserDefaultsRepository.showValues.value {
             lineCarbs.drawValuesEnabled = true
             lineCarbs.highlightEnabled = false
@@ -208,17 +202,77 @@ extension MainViewController {
         // BG Check
         var chartEntryBGCheck = [ChartDataEntry]()
         let lineBGCheck = LineChartDataSet(entries:chartEntryBGCheck, label: "")
-        lineBGCheck.circleRadius = 5
+        lineBGCheck.circleRadius = CGFloat(globalVariables.dotOther)
         lineBGCheck.circleColors = [NSUIColor.systemRed.withAlphaComponent(0.75)]
         lineBGCheck.drawCircleHoleEnabled = false
         lineBGCheck.setDrawHighlightIndicators(false)
         lineBGCheck.setColor(NSUIColor.systemRed, alpha: 1.0)
         lineBGCheck.drawCirclesEnabled = true
         lineBGCheck.lineWidth = 0
-        lineBGCheck.highlightEnabled = false
+        lineBGCheck.highlightEnabled = true
         lineBGCheck.axisDependency = YAxis.AxisDependency.right
         lineBGCheck.valueFormatter = ChartYDataValueFormatter()
-        lineBGCheck.drawValuesEnabled = UserDefaultsRepository.showValues.value
+        lineBGCheck.drawValuesEnabled = false
+        
+        // Suspend Pump
+        var chartEntrySuspend = [ChartDataEntry]()
+        let lineSuspend = LineChartDataSet(entries:chartEntrySuspend, label: "")
+        lineSuspend.circleRadius = CGFloat(globalVariables.dotOther)
+        lineSuspend.circleColors = [NSUIColor.systemTeal.withAlphaComponent(0.75)]
+        lineSuspend.drawCircleHoleEnabled = false
+        lineSuspend.setDrawHighlightIndicators(false)
+        lineSuspend.setColor(NSUIColor.systemGray2, alpha: 1.0)
+        lineSuspend.drawCirclesEnabled = true
+        lineSuspend.lineWidth = 0
+        lineSuspend.highlightEnabled = true
+        lineSuspend.axisDependency = YAxis.AxisDependency.right
+        lineSuspend.valueFormatter = ChartYDataValueFormatter()
+        lineSuspend.drawValuesEnabled = false
+        
+        // Resume Pump
+        var chartEntryResume = [ChartDataEntry]()
+        let lineResume = LineChartDataSet(entries:chartEntryResume, label: "")
+        lineResume.circleRadius = CGFloat(globalVariables.dotOther)
+        lineResume.circleColors = [NSUIColor.systemTeal.withAlphaComponent(0.75)]
+        lineResume.drawCircleHoleEnabled = false
+        lineResume.setDrawHighlightIndicators(false)
+        lineResume.setColor(NSUIColor.systemGray4, alpha: 1.0)
+        lineResume.drawCirclesEnabled = true
+        lineResume.lineWidth = 0
+        lineResume.highlightEnabled = true
+        lineResume.axisDependency = YAxis.AxisDependency.right
+        lineResume.valueFormatter = ChartYDataValueFormatter()
+        lineResume.drawValuesEnabled = false
+        
+        // Sensor Start
+        var chartEntrySensor = [ChartDataEntry]()
+        let lineSensor = LineChartDataSet(entries:chartEntrySensor, label: "")
+        lineSensor.circleRadius = CGFloat(globalVariables.dotOther)
+        lineSensor.circleColors = [NSUIColor.systemIndigo.withAlphaComponent(0.75)]
+        lineSensor.drawCircleHoleEnabled = false
+        lineSensor.setDrawHighlightIndicators(false)
+        lineSensor.setColor(NSUIColor.systemGray3, alpha: 1.0)
+        lineSensor.drawCirclesEnabled = true
+        lineSensor.lineWidth = 0
+        lineSensor.highlightEnabled = true
+        lineSensor.axisDependency = YAxis.AxisDependency.right
+        lineSensor.valueFormatter = ChartYDataValueFormatter()
+        lineSensor.drawValuesEnabled = false
+        
+        // Notes
+        var chartEntryNote = [ChartDataEntry]()
+        let lineNote = LineChartDataSet(entries:chartEntryNote, label: "")
+        lineNote.circleRadius = CGFloat(globalVariables.dotOther)
+        lineNote.circleColors = [NSUIColor.systemGray.withAlphaComponent(0.75)]
+        lineNote.drawCircleHoleEnabled = false
+        lineNote.setDrawHighlightIndicators(false)
+        lineNote.setColor(NSUIColor.systemGray3, alpha: 1.0)
+        lineNote.drawCirclesEnabled = true
+        lineNote.lineWidth = 0
+        lineNote.highlightEnabled = true
+        lineNote.axisDependency = YAxis.AxisDependency.right
+        lineNote.valueFormatter = ChartYDataValueFormatter()
+        lineNote.drawValuesEnabled = false
         
         // Setup the chart data of all lines
         let data = LineChartData()
@@ -230,6 +284,10 @@ extension MainViewController {
         data.addDataSet(lineBasalScheduled) // Dataset 5
         data.addDataSet(lineOverride) // Dataset 6
         data.addDataSet(lineBGCheck) // Dataset 7
+        data.addDataSet(lineSuspend) // Dataset 8
+        data.addDataSet(lineResume) // Dataset 9
+        data.addDataSet(lineSensor) // Dataset 10
+        data.addDataSet(lineNote) // Dataset 11
         
         data.setValueFont(UIFont.systemFont(ofSize: 12))
         
@@ -275,7 +333,7 @@ extension MainViewController {
         BGChart.rightAxis.labelTextColor = NSUIColor.label
         BGChart.rightAxis.labelPosition = YAxis.LabelPosition.insideChart
         BGChart.rightAxis.axisMinimum = 0.0
-        BGChart.rightAxis.axisMaximum = 400.0
+        BGChart.rightAxis.axisMaximum = Double(maxBG)
         BGChart.rightAxis.gridLineDashLengths = [5.0, 5.0]
         BGChart.rightAxis.drawGridLinesEnabled = false
         BGChart.rightAxis.valueFormatter = ChartYMMOLValueFormatter()
@@ -353,15 +411,12 @@ extension MainViewController {
         var smallChart = BGChartFull.lineData!.dataSets[dataIndex] as! LineChartDataSet
         mainChart.clear()
         smallChart.clear()
-        var maxBG = UserDefaultsRepository.minBGScale.value
-        var maxBGOffset: Float = 0.0
-        if UserDefaultsRepository.offsetCarbsBolus.value {
-            maxBGOffset = 40.0
-        }
+        var maxBGOffset: Float = 50
+        
         var colors = [NSUIColor]()
         for i in 0..<entries.count{
-            if Float(entries[i].sgv) > maxBG - maxBGOffset {
-                maxBG = Float(entries[i].sgv) + maxBGOffset
+            if Float(entries[i].sgv) > topBG - maxBGOffset {
+                topBG = Float(entries[i].sgv) + maxBGOffset
             }
             let value = ChartDataEntry(x: Double(entries[i].date), y: Double(entries[i].sgv), data: bgUnits.toDisplayUnits(String(entries[i].sgv)))
             mainChart.addEntry(value)
@@ -396,7 +451,7 @@ extension MainViewController {
             }
         }
         
-        BGChart.rightAxis.axisMaximum = 400
+        BGChart.rightAxis.axisMaximum = Double(topBG)
         BGChart.setVisibleXRangeMinimum(600)
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
@@ -429,8 +484,12 @@ extension MainViewController {
         if UserDefaultsRepository.debugLog.value { self.writeDebugLog(value: "Graph: print prediction") }
 
         var colors = [NSUIColor]()
+        let maxBGOffset: Float = 20
         for i in 0..<predictionData.count {
             var predictionVal = Double(predictionData[i].sgv)
+            if Float(predictionVal) > topBG - maxBGOffset {
+                topBG = Float(predictionVal) + maxBGOffset
+            }
             // Below can be turned on to prevent out of range on the graph if desired.
             // It currently just drops them out of view
             if predictionVal > 400 {
@@ -460,7 +519,7 @@ extension MainViewController {
                 smallChart.circleColors.append(colors[i])
             }
         }
-
+        BGChart.rightAxis.axisMaximum = Double(topBG)
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
@@ -512,48 +571,12 @@ extension MainViewController {
             formatter.minimumFractionDigits = 0
             formatter.maximumFractionDigits = 2
             formatter.minimumIntegerDigits = 0
-            var offset = 0
-            if UserDefaultsRepository.offsetCarbsBolus.value {
-                offset = 10
-            }
-            
-            
-            if UserDefaultsRepository.graphBars.value {
-                var dateSpread = bolusData[i].value * 2 * 60
-                if dateSpread < 60 { dateSpread * 2 }
-                
-                var startDotTime = bolusData[i].date
-                var startInnerDotTime = bolusData[i].date + 1
-                var endInnerDotTime = bolusData[i].date + dateSpread - 1
-                var endDotTime = bolusData[i].date + dateSpread
-                
-                if i < bolusData.count - 1 {
-                    if endDotTime >= bolusData[i + 1].date {
-                        endDotTime = bolusData[i + 1].date - 4
-                        endInnerDotTime = endDotTime - 1
-                        
-                        // Skip this loop if it's too short of a time to add the dots
-                        if endDotTime <= startDotTime { continue }
-                    }
-                }
-                
-                let preStartDot = ChartDataEntry(x: Double(startDotTime), y: yBottom, data: "hide")
-                BGChart.data?.dataSets[dataIndex].addEntry(preStartDot)
-
-                let startDot = ChartDataEntry(x: Double(startInnerDotTime), y: yTop, data: formatter.string(from: NSNumber(value: bolusData[i].value)))
-                BGChart.data?.dataSets[dataIndex].addEntry(startDot)
-                
-                let preEndDot = ChartDataEntry(x: Double(endInnerDotTime), y: yTop, data: formatter.string(from: NSNumber(value: bolusData[i].value)))
-                BGChart.data?.dataSets[dataIndex].addEntry(preEndDot)
+            var offset = 20
+  
+            let dot = ChartDataEntry(x: Double(bolusData[i].date), y: Double(bolusData[i].sgv + offset), data: formatter.string(from: NSNumber(value: bolusData[i].value)))
+            BGChart.data?.dataSets[dataIndex].addEntry(dot)
 
-                let endDot = ChartDataEntry(x: Double(endDotTime), y: yBottom, data: "hide")
-                BGChart.data?.dataSets[dataIndex].addEntry(endDot)
-            } else {
-                let dot = ChartDataEntry(x: Double(bolusData[i].date), y: Double(bolusData[i].sgv + offset), data: formatter.string(from: NSNumber(value: bolusData[i].value)))
-                BGChart.data?.dataSets[dataIndex].addEntry(dot)
-            }
         }
-        
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
@@ -564,14 +587,18 @@ extension MainViewController {
         var yTop: Double = 340
         var yBottom: Double = 315
         BGChart.lineData?.dataSets[dataIndex].clear()
+
+        
         for i in 0..<carbData.count{
             let formatter = NumberFormatter()
             formatter.minimumFractionDigits = 0
             formatter.maximumFractionDigits = 2
             formatter.minimumIntegerDigits = 1
             var offset = 0
-            if UserDefaultsRepository.offsetCarbsBolus.value {
-                offset = 30
+            if carbData[i].sgv > 250 {
+                offset = -50
+            } else {
+                offset = 80
             }
             
             var valueString: String = formatter.string(from: NSNumber(value: carbData[i].value))!
@@ -581,42 +608,14 @@ extension MainViewController {
                 valueString += " " + String(hours) + "h"
             }
             
-            if UserDefaultsRepository.graphBars.value {
-                var dateSpread = carbData[i].value / 10 * 60 * 2
-                
-                var startDotTime = carbData[i].date
-                var startInnerDotTime = carbData[i].date + 1
-                var endInnerDotTime = carbData[i].date + dateSpread - 1
-                var endDotTime = carbData[i].date + dateSpread
-                
-                if i < carbData.count - 1 {
-                    if endDotTime >= carbData[i + 1].date {
-                        endDotTime = carbData[i + 1].date - 4
-                        endInnerDotTime = endDotTime - 1
-                        
-                        // Skip this loop if it's too short of a time to add the dots
-                        if endDotTime <= startDotTime { continue }
-                    }
-                }
-                
-                let preStartDot = ChartDataEntry(x: Double(startDotTime), y: yBottom, data: "hide")
-                BGChart.data?.dataSets[dataIndex].addEntry(preStartDot)
-                let startDot = ChartDataEntry(x: Double(startInnerDotTime), y: yTop, data: valueString)
-                BGChart.data?.dataSets[dataIndex].addEntry(startDot)
-                
-                let endDot = ChartDataEntry(x: Double(endInnerDotTime), y: yTop, data: valueString)
-                BGChart.data?.dataSets[dataIndex].addEntry(endDot)
-                let postEndDot = ChartDataEntry(x: Double(endDotTime), y: yBottom, data: "hide")
-                BGChart.data?.dataSets[dataIndex].addEntry(postEndDot)
-            } else {
-                let dot = ChartDataEntry(x: Double(carbData[i].date), y: Double(carbData[i].sgv + offset), data: valueString)
-                BGChart.data?.dataSets[dataIndex].addEntry(dot)
-            }
+            
+            let dot = ChartDataEntry(x: Double(carbData[i].date), y: Double(carbData[i].sgv + offset), data: valueString)
+            BGChart.data?.dataSets[dataIndex].addEntry(dot)
+            
             
             
 
         }
-        
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
@@ -639,8 +638,67 @@ extension MainViewController {
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
     }
- 
     
+    func updateSuspendGraph() {
+        var dataIndex = 8
+        BGChart.lineData?.dataSets[dataIndex].clear()
+        let thisData = suspendGraphData
+        for i in 0..<thisData.count{
+            let value = ChartDataEntry(x: Double(thisData[i].date), y: Double(thisData[i].sgv), data: "Suspend Pump")
+            BGChart.data?.dataSets[dataIndex].addEntry(value)
+
+        }
+        
+        BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChart.data?.notifyDataChanged()
+        BGChart.notifyDataSetChanged()
+    }
+    
+    func updateResumeGraph() {
+        var dataIndex = 9
+        BGChart.lineData?.dataSets[dataIndex].clear()
+        let thisData = resumeGraphData
+        for i in 0..<thisData.count{
+            let value = ChartDataEntry(x: Double(thisData[i].date), y: Double(thisData[i].sgv), data: "Resume Pump")
+            BGChart.data?.dataSets[dataIndex].addEntry(value)
+
+        }
+        
+        BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChart.data?.notifyDataChanged()
+        BGChart.notifyDataSetChanged()
+    }
+    
+    func updateSensorStart() {
+        var dataIndex = 10
+        BGChart.lineData?.dataSets[dataIndex].clear()
+        let thisData = sensorStartGraphData
+        for i in 0..<thisData.count{
+            let value = ChartDataEntry(x: Double(thisData[i].date), y: Double(thisData[i].sgv), data: "Start Sensor")
+            BGChart.data?.dataSets[dataIndex].addEntry(value)
+
+        }
+        
+        BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChart.data?.notifyDataChanged()
+        BGChart.notifyDataSetChanged()
+    }
+    
+    func updateNotes() {
+        var dataIndex = 11
+        BGChart.lineData?.dataSets[dataIndex].clear()
+        let thisData = noteGraphData
+        for i in 0..<thisData.count{
+            let value = ChartDataEntry(x: Double(thisData[i].date), y: Double(thisData[i].sgv), data: thisData[i].note)
+            BGChart.data?.dataSets[dataIndex].addEntry(value)
+
+        }
+        
+        BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChart.data?.notifyDataChanged()
+        BGChart.notifyDataSetChanged()
+    }
+ 
     func createSmallBGGraph(){
         let entries = bgData
        var bgChartEntry = [ChartDataEntry]()
@@ -689,45 +747,52 @@ extension MainViewController {
     
     func updateOverrideGraph() {
         var dataIndex = 6
-        var yTop: Double = 399
-        var yBottom: Double = 375
+        var yTop: Double = Double(topBG - 1)
+        var yBottom: Double = Double(topBG - 25)
         var chart = BGChart.lineData!.dataSets[dataIndex] as! LineChartDataSet
         chart.clear()
+        let thisData = overrideGraphData
         
         var colors = [NSUIColor]()
-        for i in 0..<overrideGraphData.count{
-            let multiplier = overrideGraphData[i].insulNeedsScaleFactor as! Double * 100.0
+        for i in 0..<thisData.count{
+            let thisItem = thisData[i]
+            let multiplier = thisItem.insulNeedsScaleFactor as! Double * 100.0
             //let labelText = String(format: "%.0f%%", multiplier)
-            let labelText = overrideGraphData[i].reason
+            var labelText = thisItem.reason + "\r\n"
+            labelText += String(Int(thisItem.insulNeedsScaleFactor * 100)) + "% "
+            if thisItem.correctionRange.count == 2 {
+                labelText += String(thisItem.correctionRange[0]) + "-" + String(thisItem.correctionRange[1])
+            }
+            
             
             // Start Dot
             // Shift dots 30 seconds to create an empty 0 space between consecutive temps
-            let preStartDot = ChartDataEntry(x: Double(overrideGraphData[i].date), y: yBottom, data: "hide")
+            let preStartDot = ChartDataEntry(x: Double(thisItem.date), y: yBottom, data: "hide")
             BGChart.data?.dataSets[dataIndex].addEntry(preStartDot)
-            let value = ChartDataEntry(x: Double(overrideGraphData[i].date + 1), y: yTop, data: labelText)
+            let value = ChartDataEntry(x: Double(thisItem.date + 1), y: yTop, data: labelText)
             BGChart.data?.dataSets[dataIndex].addEntry(value)
             
-            if Double(overrideGraphData[i].insulNeedsScaleFactor) == 1.0 {
+            if Double(thisItem.insulNeedsScaleFactor) == 1.0 {
                 colors.append(NSUIColor.systemGray.withAlphaComponent(0.0))
             } else if i >= overrideGraphData.count - 2 {
                 colors.append(NSUIColor.systemGreen)
             } else {
-                colors.append(NSUIColor.systemGray.withAlphaComponent(CGFloat(overrideGraphData[i].insulNeedsScaleFactor / 2)))
+                colors.append(NSUIColor.systemGray.withAlphaComponent(CGFloat(thisItem.insulNeedsScaleFactor / 2)))
             }
             
             // End Dot
-            let endDot = ChartDataEntry(x: Double(overrideGraphData[i].endDate - 1), y: yTop, data: labelText)
+            let endDot = ChartDataEntry(x: Double(thisItem.endDate - 1), y: yTop, data: labelText)
             BGChart.data?.dataSets[dataIndex].addEntry(endDot)
             // Post end dot
-            let postEndDot = ChartDataEntry(x: Double(overrideGraphData[i].endDate), y: yBottom, data: "hide")
+            let postEndDot = ChartDataEntry(x: Double(thisItem.endDate), y: yBottom, data: "hide")
             BGChart.data?.dataSets[dataIndex].addEntry(postEndDot)
             
-            if Double(overrideGraphData[i].insulNeedsScaleFactor) == 1.0 {
+            if Double(thisItem.insulNeedsScaleFactor) == 1.0 {
                 colors.append(NSUIColor.systemGray.withAlphaComponent(0.0))
             } else if i >= overrideGraphData.count - 2 {
                 colors.append(NSUIColor.systemGreen)
             } else {
-                colors.append(NSUIColor.systemGray.withAlphaComponent(CGFloat(overrideGraphData[i].insulNeedsScaleFactor / 2)))
+                colors.append(NSUIColor.systemGray.withAlphaComponent(CGFloat(thisItem.insulNeedsScaleFactor / 2)))
             }
         }
         

+ 8 - 5
LoopFollow/Controllers/NightScout.swift

@@ -560,7 +560,7 @@ extension MainViewController {
                 }
                 else
                 {
-                    oText += String(format:"%.0f%%", 100)
+                    oText += "100%"
                 }
                 oText += " ("
                 let minValue = lastCorrection["minValue"] as! Double
@@ -589,13 +589,13 @@ extension MainViewController {
                         if let isActive = override["active"] as? Bool {
                             if isActive {
                                 if let multiplier = override["multiplier"] as? Double {
-                                    let override = DataStructs.overrideGraphStruct(value: multiplier, date: timestamp, sgv: Int(UserDefaultsRepository.overrideDisplayLocation.value))
+                                    let override = DataStructs.overrideGraphStruct(value: multiplier, date: timestamp, sgv: 400)
                                     overrideData.append(override)
                                 }
                                 
                             } else {
                                 let multiplier = 1.0 as Double
-                                let override = DataStructs.overrideGraphStruct(value: multiplier, date: timestamp, sgv: Int(UserDefaultsRepository.overrideDisplayLocation.value))
+                                let override = DataStructs.overrideGraphStruct(value: multiplier, date: timestamp, sgv: 400)
                                 overrideData.append(override)
                             }
                         }
@@ -1550,7 +1550,10 @@ extension MainViewController {
                 dateTimeStamp = dateTimeUtils.getTimeInterval24HoursAgo()
             }
             
-            guard let multipler = currentEntry?["insulinNeedsScaleFactor"] as? Double else { continue }
+            var multiplier: Double = 1.0
+            if currentEntry?["insulinNeedsScaleFactor"] != nil {
+                multiplier = currentEntry?["insulinNeedsScaleFactor"] as! Double
+            }
             var duration: Double = 5.0
             if let durationType = currentEntry?["durationType"] as? String {
                 duration = dateTimeUtils.getNowTimeIntervalUTC() - dateTimeStamp + (60 * 60)
@@ -1575,7 +1578,7 @@ extension MainViewController {
                         
             let endDate = dateTimeStamp + (duration)
 
-            let dot = DataStructs.overrideStruct(insulNeedsScaleFactor: multipler, date: dateTimeStamp, endDate: endDate, duration: duration, correctionRange: range, enteredBy: enteredBy, reason: reason, sgv: -20)
+            let dot = DataStructs.overrideStruct(insulNeedsScaleFactor: multiplier, date: dateTimeStamp, endDate: endDate, duration: duration, correctionRange: range, enteredBy: enteredBy, reason: reason, sgv: -20)
             overrideGraphData.append(dot)
             
             

+ 2 - 66
LoopFollow/ViewControllers/GraphSettingsViewController.swift

@@ -41,19 +41,6 @@ class GraphSettingsViewController: FormViewController {
             row1.evaluateHidden()
         }
         
-        if let row2 = form.rowBy(tag: "offsetCarbsBolus") as? SwitchRow {
-            row2.hidden = .function(["hide"],  {form in
-                return isHidden
-            })
-            row2.evaluateHidden()
-        }
-        
-        if let row3 = form.rowBy(tag: "overrideDisplayLocation") as? StepperRow {
-            row3.hidden = .function(["hide"],  {form in
-                return isHidden
-            })
-            row3.evaluateHidden()
-        }
         
         if let row4 = form.rowBy(tag: "showValues") as? SwitchRow {
             row4.hidden = .function(["hide"],  {form in
@@ -106,14 +93,6 @@ class GraphSettingsViewController: FormViewController {
              }
                
         }
-            <<< SwitchRow("offsetCarbsBolus"){ row in
-                row.title = "Offset Carb/Bolus Dots"
-                row.value = UserDefaultsRepository.offsetCarbsBolus.value
-            }.onChange { [weak self] row in
-                        guard let value = row.value else { return }
-                        UserDefaultsRepository.offsetCarbsBolus.value = value
-                        
-            }
             <<< SwitchRow("showValues"){ row in
                 row.title = "Show Carb/Bolus Values"
                 row.value = UserDefaultsRepository.showValues.value
@@ -130,14 +109,6 @@ class GraphSettingsViewController: FormViewController {
                             UserDefaultsRepository.showAbsorption.value = value
                             
                 }
-            <<< SwitchRow("graphBars"){ row in
-                row.title = "Carb/Bolus Bar Graph"
-                row.value = UserDefaultsRepository.graphBars.value
-            }.onChange { [weak self] row in
-                        guard let value = row.value else { return }
-                        UserDefaultsRepository.graphBars.value = value
-                        
-            }
             <<< StepperRow("predictionToLoad") { row in
                 row.title = "Hours of Prediction"
                 row.cell.stepper.stepValue = 0.25
@@ -164,29 +135,7 @@ class GraphSettingsViewController: FormViewController {
                 UserDefaultsRepository.minBGScale.value = Float(value)
                 
             }
-            <<< StepperRow("minBGValue") { row in
-                row.title = "Min BG Display"
-                row.cell.stepper.stepValue = 1
-                row.cell.stepper.minimumValue = -40
-                row.cell.stepper.maximumValue = 40
-                row.value = Double(UserDefaultsRepository.minBGValue.value)
-                row.displayValueFor = { value in
-                    guard let value = value else { return nil }
-                    return bgUnits.toDisplayUnits(String(value))
-                }
-            }.onChange { [weak self] row in
-                guard let value = row.value else { return }
-                UserDefaultsRepository.minBGValue.value = Float(value)
-                // Force main screen update
-                //guard let mainScreen = self?.tabBarController!.viewControllers?[0] as? MainViewController else { return }
-                //mainScreen.updateBGGraphSettings()
-              
-                if let appState = self!.appStateController {
-                  appState.chartSettingsChanged = true
-                  appState.chartSettingsChanges |= ChartSettingsChangeEnum.minBGValueChanged.rawValue
-               }
-                
-            }
+           
         <<< StepperRow("minBasalScale") { row in
             row.title = "Min Basal Scale"
             row.cell.stepper.stepValue = 0.5
@@ -243,20 +192,7 @@ class GraphSettingsViewController: FormViewController {
                appState.chartSettingsChanges |= ChartSettingsChangeEnum.highLineChanged.rawValue
              }
         }
-        <<< StepperRow("overrideDisplayLocation") { row in
-            row.title = "Override BG Location"
-            row.cell.stepper.stepValue = 1
-            row.cell.stepper.minimumValue = Double(UserDefaultsRepository.minBGValue.value)
-            row.cell.stepper.maximumValue = Double(UserDefaultsRepository.minBGScale.value)
-            row.value = Double(UserDefaultsRepository.overrideDisplayLocation.value)
-            row.displayValueFor = { value in
-                guard let value = value else { return nil }
-                return bgUnits.toDisplayUnits(String(value))
-            }
-        }.onChange { [weak self] row in
-                guard let value = row.value else { return }
-                UserDefaultsRepository.overrideDisplayLocation.value = Float(value)
-            }
+       
             
        +++ ButtonRow() {
           $0.title = "DONE"

+ 1 - 0
LoopFollow/ViewControllers/MainViewController.swift

@@ -126,6 +126,7 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
     var latestIOB = ""
     var lastOverrideStartTime: TimeInterval = 0
     var lastOverrideEndTime: TimeInterval = 0
+    var topBG: Float = UserDefaultsRepository.minBGScale.value
     
     // share
     var bgDataShare: [ShareGlucoseData] = []

+ 2 - 1
LoopFollow/helpers/Chart.swift

@@ -11,7 +11,8 @@ import Charts
 
 final class OverrideFillFormatter: IFillFormatter {
     func getFillLinePosition(dataSet: ILineChartDataSet, dataProvider: LineChartDataProvider) -> CGFloat {
-        return 375
+        return CGFloat(dataSet.entryForIndex(0)!.y)
+        //return 375
     }
 }
 

+ 7 - 0
LoopFollow/helpers/Globals.swift

@@ -12,4 +12,11 @@ import Foundation
 struct globalVariables {
     static var dexVerifiedAlert: TimeInterval = 0
     static var nsVerifiedAlert: TimeInterval = 0
+    
+    // Graph Settings
+    static let dotBG: Float = 3
+    static let dotCarb: Float = 6
+    static let dotBolus: Float = 6
+    static let dotOther: Float = 6
+    
 }

+ 2 - 4
LoopFollow/repository/UserDefaults.swift

@@ -41,19 +41,17 @@ class UserDefaultsRepository {
     static let chartScaleX = UserDefaultsValue<Float>(key: "chartScaleX", default: 18.0)
     static let showDots = UserDefaultsValue<Bool>(key: "showDots", default: true)
     static let showValues = UserDefaultsValue<Bool>(key: "showValues", default: true)
-    static let graphBars = UserDefaultsValue<Bool>(key: "graphBars", default: true)
     static let showAbsorption = UserDefaultsValue<Bool>(key: "showAbsorption", default: true)
     static let showLines = UserDefaultsValue<Bool>(key: "showLines", default: true)
-    static let offsetCarbsBolus = UserDefaultsValue<Bool>(key: "offsetCarbsBolus", default: true)
     static let hoursToLoad = UserDefaultsValue<Int>(key: "hoursToLoad", default: 24)
     static let predictionToLoad = UserDefaultsValue<Double>(key: "predictionToLoad", default: 1)
     static let minBasalScale = UserDefaultsValue<Double>(key: "minBasalScale", default: 5.0)
     static let minBGScale = UserDefaultsValue<Float>(key: "minBGScale", default: 250.0)
-    static let minBGValue = UserDefaultsValue<Float>(key: "minBGValue", default: 40.0)
-    static let overrideDisplayLocation = UserDefaultsValue<Float>(key: "overrideDisplayLocation", default: 40.0)
+
     static let lowLine = UserDefaultsValue<Float>(key: "lowLine", default: 70.0)
     static let highLine = UserDefaultsValue<Float>(key: "highLine", default: 180.0)
     
+    
     // General Settings
     static let colorBGText = UserDefaultsValue<Bool>(key: "colorBGText", default: true)
     static let showStats = UserDefaultsValue<Bool>(key: "showStats", default: true)