Explorar el Código

Add: all treatments to overview graph
Fix: always move to current time with new BG reading

Jon Fawcett hace 5 años
padre
commit
66ef06faba
Se han modificado 1 ficheros con 251 adiciones y 43 borrados
  1. 251 43
      LoopFollow/Controllers/Graphs.swift

+ 251 - 43
LoopFollow/Controllers/Graphs.swift

@@ -365,7 +365,6 @@ extension MainViewController {
         }
     }
     
-    
     func updateBGGraphSettings() {
         let dataIndex = 0
         let dataIndexPrediction = 1
@@ -461,6 +460,7 @@ extension MainViewController {
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.rightAxis.axisMaximum = Double(topBG)
         BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChartFull.data?.notifyDataChanged()
         BGChartFull.notifyDataSetChanged()
@@ -475,9 +475,9 @@ extension MainViewController {
             BGChart.zoom(scaleX: scaleX, scaleY: 1, x: 1, y: 1)
             firstGraphLoad = false
         }
-        if BGChart.chartXMax > dateTimeUtils.getNowTimeIntervalUTC() {
-            BGChart.moveViewToAnimated(xValue: dateTimeUtils.getNowTimeIntervalUTC() - (BGChart.visibleXRange * 0.7), yValue: 0.0, axis: .right, duration: 1, easingOption: .easeInBack)
-        }
+        
+        // Move to current reading everytime new readings load
+        BGChart.moveViewToAnimated(xValue: dateTimeUtils.getNowTimeIntervalUTC() - (BGChart.visibleXRange * 0.7), yValue: 0.0, axis: .right, duration: 1, easingOption: .easeInBack)
     }
     
     func updatePredictionGraph() {
@@ -542,33 +542,48 @@ extension MainViewController {
     func updateBasalGraph() {
         var dataIndex = 2
         BGChart.lineData?.dataSets[dataIndex].clear()
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
         var maxBasal = UserDefaultsRepository.minBasalScale.value
+        var maxBasalSmall: Double = 0.0
         for i in 0..<basalData.count{
             let value = ChartDataEntry(x: Double(basalData[i].date), y: Double(basalData[i].basalRate), data: formatPillText(line1: String(basalData[i].basalRate), time: basalData[i].date))
             BGChart.data?.dataSets[dataIndex].addEntry(value)
+            BGChartFull.data?.dataSets[dataIndex].addEntry(value)
             if basalData[i].basalRate  > maxBasal {
                 maxBasal = basalData[i].basalRate
             }
+            if basalData[i].basalRate > maxBasalSmall {
+                maxBasalSmall = basalData[i].basalRate
+            }
         }
         
         BGChart.leftAxis.axisMaximum = maxBasal
+        BGChartFull.leftAxis.axisMaximum = maxBasalSmall
         
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func updateBasalScheduledGraph() {
         var dataIndex = 5
         BGChart.lineData?.dataSets[dataIndex].clear()
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
         for i in 0..<basalScheduleData.count{
             let value = ChartDataEntry(x: Double(basalScheduleData[i].date), y: Double(basalScheduleData[i].basalRate))
             BGChart.data?.dataSets[dataIndex].addEntry(value)
+            BGChartFull.data?.dataSets[dataIndex].addEntry(value)
         }
         
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func updateBolusGraph() {
@@ -576,7 +591,8 @@ extension MainViewController {
         var yTop: Double = 370
         var yBottom: Double = 345
         BGChart.lineData?.dataSets[dataIndex].clear()
-
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
+        
         for i in 0..<bolusData.count{
             let formatter = NumberFormatter()
             formatter.minimumFractionDigits = 0
@@ -596,17 +612,21 @@ extension MainViewController {
   
             let dot = ChartDataEntry(x: Double(dateTimeStamp), y: Double(bolusData[i].sgv), data: formatter.string(from: NSNumber(value: bolusData[i].value)))
             BGChart.data?.dataSets[dataIndex].addEntry(dot)
+            BGChartFull.data?.dataSets[dataIndex].addEntry(dot)
 
         }
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func updateCarbGraph() {
         var dataIndex = 4
         BGChart.lineData?.dataSets[dataIndex].clear()
-
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
         
         for i in 0..<carbData.count{
             let formatter = NumberFormatter()
@@ -636,7 +656,7 @@ extension MainViewController {
             
             let dot = ChartDataEntry(x: Double(dateTimeStamp), y: Double(carbData[i].sgv), data: valueString)
             BGChart.data?.dataSets[dataIndex].addEntry(dot)
-            
+            BGChartFull.data?.dataSets[dataIndex].addEntry(dot)
             
             
 
@@ -644,11 +664,16 @@ extension MainViewController {
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func updateBGCheckGraph() {
         var dataIndex = 7
         BGChart.lineData?.dataSets[dataIndex].clear()
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
+        
         for i in 0..<bgCheckData.count{
             let formatter = NumberFormatter()
             formatter.minimumFractionDigits = 0
@@ -660,17 +685,22 @@ extension MainViewController {
             
             let value = ChartDataEntry(x: Double(bgCheckData[i].date), y: Double(bgCheckData[i].sgv), data: formatPillText(line1: bgUnits.toDisplayUnits(String(bgCheckData[i].sgv)), time: bgCheckData[i].date))
             BGChart.data?.dataSets[dataIndex].addEntry(value)
+            BGChartFull.data?.dataSets[dataIndex].addEntry(value)
 
         }
         
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func updateSuspendGraph() {
         var dataIndex = 8
         BGChart.lineData?.dataSets[dataIndex].clear()
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
         let thisData = suspendGraphData
         for i in 0..<thisData.count{
             // skip if > 24 hours old
@@ -678,17 +708,21 @@ extension MainViewController {
             
             let value = ChartDataEntry(x: Double(thisData[i].date), y: Double(thisData[i].sgv), data: formatPillText(line1: "Suspend Pump", time: thisData[i].date))
             BGChart.data?.dataSets[dataIndex].addEntry(value)
-
+            BGChartFull.data?.dataSets[dataIndex].addEntry(value)
         }
         
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func updateResumeGraph() {
         var dataIndex = 9
         BGChart.lineData?.dataSets[dataIndex].clear()
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
         let thisData = resumeGraphData
         for i in 0..<thisData.count{
             // skip if > 24 hours old
@@ -696,17 +730,21 @@ extension MainViewController {
             
             let value = ChartDataEntry(x: Double(thisData[i].date), y: Double(thisData[i].sgv), data: formatPillText(line1: "Resume Pump", time: thisData[i].date))
             BGChart.data?.dataSets[dataIndex].addEntry(value)
-
+            BGChartFull.data?.dataSets[dataIndex].addEntry(value)
         }
         
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func updateSensorStart() {
         var dataIndex = 10
         BGChart.lineData?.dataSets[dataIndex].clear()
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
         let thisData = sensorStartGraphData
         for i in 0..<thisData.count{
             // skip if > 24 hours old
@@ -714,17 +752,21 @@ extension MainViewController {
             
             let value = ChartDataEntry(x: Double(thisData[i].date), y: Double(thisData[i].sgv), data: formatPillText(line1: "Start Sensor", time: thisData[i].date))
             BGChart.data?.dataSets[dataIndex].addEntry(value)
-
+            BGChartFull.data?.dataSets[dataIndex].addEntry(value)
         }
         
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func updateNotes() {
         var dataIndex = 11
         BGChart.lineData?.dataSets[dataIndex].clear()
+        BGChartFull.lineData?.dataSets[dataIndex].clear()
         let thisData = noteGraphData
         for i in 0..<thisData.count{
             
@@ -733,19 +775,22 @@ extension MainViewController {
             
             let value = ChartDataEntry(x: Double(thisData[i].date), y: Double(thisData[i].sgv), data: formatPillText(line1: thisData[i].note, time: thisData[i].date))
             BGChart.data?.dataSets[dataIndex].addEntry(value)
-
+            BGChartFull.data?.dataSets[dataIndex].addEntry(value)
         }
         
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
  
     func createSmallBGGraph(){
         let entries = bgData
        var bgChartEntry = [ChartDataEntry]()
        var colors = [NSUIColor]()
-        
+        var maxBG: Float = UserDefaultsRepository.minBGScale.value
         
         let lineBG = LineChartDataSet(entries:bgChartEntry, label: "")
         
@@ -756,7 +801,8 @@ extension MainViewController {
         lineBG.drawVerticalHighlightIndicatorEnabled = false
         lineBG.highlightColor = NSUIColor.label
         lineBG.drawValuesEnabled = false
-        lineBG.lineWidth = 2
+        lineBG.lineWidth = 1.5
+        lineBG.axisDependency = YAxis.AxisDependency.right
         
         // Setup Prediction line details
         var predictionChartEntry = [ChartDataEntry]()
@@ -769,21 +815,201 @@ extension MainViewController {
         linePrediction.drawVerticalHighlightIndicatorEnabled = false
         linePrediction.highlightColor = NSUIColor.label
         linePrediction.drawValuesEnabled = false
-        linePrediction.lineWidth = 2
+        linePrediction.lineWidth = 1.5
+        linePrediction.axisDependency = YAxis.AxisDependency.right
+        
+        // create Basal graph data
+        var chartEntry = [ChartDataEntry]()
+        var maxBasal = UserDefaultsRepository.minBasalScale.value
+        let lineBasal = LineChartDataSet(entries:chartEntry, label: "")
+        lineBasal.setDrawHighlightIndicators(false)
+        lineBasal.setColor(NSUIColor.systemBlue, alpha: 0.5)
+        lineBasal.lineWidth = 0
+        lineBasal.drawFilledEnabled = true
+        lineBasal.fillColor = NSUIColor.systemBlue
+        lineBasal.fillAlpha = 0.35
+        lineBasal.drawCirclesEnabled = false
+        lineBasal.axisDependency = YAxis.AxisDependency.left
+        lineBasal.highlightEnabled = false
+        lineBasal.drawValuesEnabled = false
+        lineBasal.fillFormatter = basalFillFormatter()
+        
+        // Boluses
+        var chartEntryBolus = [ChartDataEntry]()
+        let lineBolus = LineChartDataSet(entries:chartEntryBolus, label: "")
+        lineBolus.circleRadius = 2
+        lineBolus.circleColors = [NSUIColor.systemBlue.withAlphaComponent(0.75)]
+        lineBolus.drawCircleHoleEnabled = false
+        lineBolus.setDrawHighlightIndicators(false)
+        lineBolus.setColor(NSUIColor.systemBlue, alpha: 1.0)
+        lineBolus.lineWidth = 0
+        lineBolus.axisDependency = YAxis.AxisDependency.right
+        lineBolus.valueFormatter = ChartYDataValueFormatter()
+        lineBolus.valueTextColor = NSUIColor.label
+        lineBolus.fillColor = NSUIColor.systemBlue
+        lineBolus.fillAlpha = 0.6
+        lineBolus.drawCirclesEnabled = true
+        lineBolus.drawFilledEnabled = false
+        lineBolus.drawValuesEnabled = false
+        lineBolus.highlightEnabled = false
         
 
+        
+        // Carbs
+        var chartEntryCarbs = [ChartDataEntry]()
+        let lineCarbs = LineChartDataSet(entries:chartEntryCarbs, label: "")
+        lineCarbs.circleRadius = 2
+        lineCarbs.circleColors = [NSUIColor.systemOrange.withAlphaComponent(0.75)]
+        lineCarbs.drawCircleHoleEnabled = false
+        lineCarbs.setDrawHighlightIndicators(false)
+        lineCarbs.setColor(NSUIColor.systemBlue, alpha: 1.0)
+        lineCarbs.lineWidth = 0
+        lineCarbs.axisDependency = YAxis.AxisDependency.right
+        lineCarbs.valueFormatter = ChartYDataValueFormatter()
+        lineCarbs.valueTextColor = NSUIColor.label
+        lineCarbs.fillColor = NSUIColor.systemOrange
+        lineCarbs.fillAlpha = 0.6
+        lineCarbs.drawCirclesEnabled = true
+        lineCarbs.drawFilledEnabled = false
+        lineCarbs.drawValuesEnabled = false
+        lineCarbs.highlightEnabled = false
+        
+        
+        
+        // create Scheduled Basal graph data
+        var chartBasalScheduledEntry = [ChartDataEntry]()
+        let lineBasalScheduled = LineChartDataSet(entries:chartBasalScheduledEntry, label: "")
+        lineBasalScheduled.setDrawHighlightIndicators(false)
+        lineBasalScheduled.setColor(NSUIColor.systemBlue, alpha: 0.8)
+        lineBasalScheduled.lineWidth = 0.5
+        lineBasalScheduled.drawFilledEnabled = false
+        lineBasalScheduled.drawCirclesEnabled = false
+        lineBasalScheduled.axisDependency = YAxis.AxisDependency.left
+        lineBasalScheduled.highlightEnabled = false
+        lineBasalScheduled.drawValuesEnabled = false
+        lineBasalScheduled.lineDashLengths = [2, 1]
+        
+        // create Override graph data
+        var chartOverrideEntry = [ChartDataEntry]()
+        let lineOverride = LineChartDataSet(entries:chartOverrideEntry, label: "")
+        lineOverride.setDrawHighlightIndicators(false)
+        lineOverride.lineWidth = 0
+        lineOverride.drawFilledEnabled = true
+        lineOverride.fillFormatter = OverrideFillFormatter()
+        lineOverride.fillColor = NSUIColor.systemGreen
+        lineOverride.fillAlpha = 0.6
+        lineOverride.drawCirclesEnabled = false
+        lineOverride.axisDependency = YAxis.AxisDependency.right
+        lineOverride.highlightEnabled = true
+        lineOverride.drawValuesEnabled = false
+        
+        // BG Check
+        var chartEntryBGCheck = [ChartDataEntry]()
+        let lineBGCheck = LineChartDataSet(entries:chartEntryBGCheck, label: "")
+        lineBGCheck.circleRadius = 2
+        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.axisDependency = YAxis.AxisDependency.right
+        lineBGCheck.valueFormatter = ChartYDataValueFormatter()
+        lineBGCheck.drawValuesEnabled = false
+        
+        // Suspend Pump
+        var chartEntrySuspend = [ChartDataEntry]()
+        let lineSuspend = LineChartDataSet(entries:chartEntrySuspend, label: "")
+        lineSuspend.circleRadius = 2
+        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 = false
+        lineSuspend.axisDependency = YAxis.AxisDependency.right
+        lineSuspend.valueFormatter = ChartYDataValueFormatter()
+        lineSuspend.drawValuesEnabled = false
+        
+        // Resume Pump
+        var chartEntryResume = [ChartDataEntry]()
+        let lineResume = LineChartDataSet(entries:chartEntryResume, label: "")
+        lineResume.circleRadius = 2
+        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 = false
+        lineResume.axisDependency = YAxis.AxisDependency.right
+        lineResume.valueFormatter = ChartYDataValueFormatter()
+        lineResume.drawValuesEnabled = false
+        
+        // Sensor Start
+        var chartEntrySensor = [ChartDataEntry]()
+        let lineSensor = LineChartDataSet(entries:chartEntrySensor, label: "")
+        lineSensor.circleRadius = 2
+        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 = false
+        lineSensor.axisDependency = YAxis.AxisDependency.right
+        lineSensor.valueFormatter = ChartYDataValueFormatter()
+        lineSensor.drawValuesEnabled = false
+        
+        // Notes
+        var chartEntryNote = [ChartDataEntry]()
+        let lineNote = LineChartDataSet(entries:chartEntryNote, label: "")
+        lineNote.circleRadius = 2
+        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 = false
+        lineNote.axisDependency = YAxis.AxisDependency.right
+        lineNote.valueFormatter = ChartYDataValueFormatter()
+        lineNote.drawValuesEnabled = false
+        
+        // Setup the chart data of all lines
         let data = LineChartData()
-        data.addDataSet(lineBG)
-        data.addDataSet(linePrediction)
+        data.addDataSet(lineBG) // Dataset 0
+        data.addDataSet(linePrediction) // Dataset 1
+        data.addDataSet(lineBasal) // Dataset 2
+        data.addDataSet(lineBolus) // Dataset 3
+        data.addDataSet(lineCarbs) // Dataset 4
+        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
+        
         BGChartFull.highlightPerDragEnabled = true
         BGChartFull.leftAxis.enabled = false
+        BGChartFull.leftAxis.axisMaximum = maxBasal
+        BGChartFull.leftAxis.axisMinimum = 0
+        
         BGChartFull.rightAxis.enabled = false
+        BGChartFull.rightAxis.axisMinimum = 0.0
+        BGChartFull.rightAxis.axisMaximum = Double(maxBG)
+                                               
         BGChartFull.xAxis.enabled = false
         BGChartFull.legend.enabled = false
         BGChartFull.scaleYEnabled = false
         BGChartFull.scaleXEnabled = false
         BGChartFull.drawGridBackgroundEnabled = false
         BGChartFull.data = data
+        
+        
     }
     
     func updateOverrideGraph() {
@@ -791,7 +1017,9 @@ extension MainViewController {
         var yTop: Double = Double(topBG - 1)
         var yBottom: Double = Double(topBG - 25)
         var chart = BGChart.lineData!.dataSets[dataIndex] as! LineChartDataSet
+        var smallChart = BGChart.lineData!.dataSets[dataIndex] as! LineChartDataSet
         chart.clear()
+        smallChart.clear()
         let thisData = overrideGraphData
         
         var colors = [NSUIColor]()
@@ -810,48 +1038,28 @@ extension MainViewController {
             // Shift dots 30 seconds to create an empty 0 space between consecutive temps
             let preStartDot = ChartDataEntry(x: Double(thisItem.date), y: yBottom, data: "hide")
             BGChart.data?.dataSets[dataIndex].addEntry(preStartDot)
+            BGChartFull.data?.dataSets[dataIndex].addEntry(preStartDot)
             let value = ChartDataEntry(x: Double(thisItem.date + 1), y: yTop, data: labelText)
             BGChart.data?.dataSets[dataIndex].addEntry(value)
+            BGChartFull.data?.dataSets[dataIndex].addEntry(value)
             
-            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(thisItem.insulNeedsScaleFactor / 2)))
-            }
             
             // End Dot
             let endDot = ChartDataEntry(x: Double(thisItem.endDate - 1), y: yTop, data: labelText)
             BGChart.data?.dataSets[dataIndex].addEntry(endDot)
+            BGChartFull.data?.dataSets[dataIndex].addEntry(endDot)
             // Post end dot
             let postEndDot = ChartDataEntry(x: Double(thisItem.endDate), y: yBottom, data: "hide")
             BGChart.data?.dataSets[dataIndex].addEntry(postEndDot)
-            
-            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(thisItem.insulNeedsScaleFactor / 2)))
-            }
-        }
-        
-        // Set Colors
-        let line = BGChart.lineData!.dataSets[dataIndex] as! LineChartDataSet
-        line.colors.removeAll()
-        line.circleColors.removeAll()
-        
-        if colors.count > 0 {
-            for i in 0..<colors.count{
-                chart.addColor(colors[i])
-                chart.circleColors.append(colors[i])
-            }
+            BGChartFull.data?.dataSets[dataIndex].addEntry(postEndDot)
         }
         
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
+        BGChartFull.data?.dataSets[dataIndex].notifyDataSetChanged()
+        BGChartFull.data?.notifyDataChanged()
+        BGChartFull.notifyDataSetChanged()
     }
     
     func formatPillText(line1: String, time: TimeInterval) -> String {