Skip to content

Commit 10f581e

Browse files
authored
Current time line on charts (LoopKit#6)
1 parent 0c25618 commit 10f581e

4 files changed

Lines changed: 20 additions & 0 deletions

File tree

LoopUI/Charts/COBChart.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ public extension COBChart {
6262
// Grid lines
6363
let gridLayer = ChartGuideLinesForValuesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, settings: guideLinesLayerSettings, axisValuesX: Array(xAxisValues.dropFirst().dropLast()), axisValuesY: yAxisValues)
6464

65+
let currentTimeValue = ChartAxisValueDate(date: Date(), formatter: { _ in "" })
66+
let currentTimeSettings = ChartGuideLinesLayerSettings(linesColor: .COBTintColor, linesWidth: 0.5)
67+
let currentTimeLayer = ChartGuideLinesForValuesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, settings: currentTimeSettings, axisValuesX: [currentTimeValue], axisValuesY: [])
68+
6569
if gestureRecognizer != nil {
6670
cobChartCache = ChartPointsTouchHighlightLayerViewCache(
6771
xAxisLayer: xAxisLayer,
@@ -75,6 +79,7 @@ public extension COBChart {
7579

7680
let layers: [ChartLayer?] = [
7781
gridLayer,
82+
currentTimeLayer,
7883
xAxisLayer,
7984
yAxisLayer,
8085
cobChartCache?.highlightLayer,

LoopUI/Charts/DoseChart.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ public extension DoseChart {
8484
// Grid lines
8585
let gridLayer = ChartGuideLinesForValuesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, settings: guideLinesLayerSettings, axisValuesX: Array(xAxisValues.dropFirst().dropLast()), axisValuesY: yAxisValues)
8686

87+
let currentTimeValue = ChartAxisValueDate(date: Date(), formatter: { _ in "" })
88+
let currentTimeSettings = ChartGuideLinesLayerSettings(linesColor: colors.doseTint, linesWidth: 0.5)
89+
let currentTimeLayer = ChartGuideLinesForValuesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, settings: currentTimeSettings, axisValuesX: [currentTimeValue], axisValuesY: [])
90+
8791
// 0-line
8892
let dummyZeroChartPoint = ChartPoint(x: ChartAxisValueDouble(0), y: ChartAxisValueDouble(0))
8993
let zeroGuidelineLayer = ChartPointsViewsLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, chartPoints: [dummyZeroChartPoint], viewGenerator: {(chartPointModel, layer, chart) -> UIView? in
@@ -108,6 +112,7 @@ public extension DoseChart {
108112

109113
let layers: [ChartLayer?] = [
110114
gridLayer,
115+
currentTimeLayer,
111116
xAxisLayer,
112117
yAxisLayer,
113118
zeroGuidelineLayer,

LoopUI/Charts/IOBChart.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ public extension IOBChart {
6161
// Grid lines
6262
let gridLayer = ChartGuideLinesForValuesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, settings: guideLinesLayerSettings, axisValuesX: Array(xAxisValues.dropFirst().dropLast()), axisValuesY: yAxisValues)
6363

64+
let currentTimeValue = ChartAxisValueDate(date: Date(), formatter: { _ in "" })
65+
let currentTimeSettings = ChartGuideLinesLayerSettings(linesColor: .IOBTintColor, linesWidth: 0.5)
66+
let currentTimeLayer = ChartGuideLinesForValuesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, settings: currentTimeSettings, axisValuesX: [currentTimeValue], axisValuesY: [])
67+
6468
// 0-line
6569
let dummyZeroChartPoint = ChartPoint(x: ChartAxisValueDouble(0), y: ChartAxisValueDouble(0))
6670
let zeroGuidelineLayer = ChartPointsViewsLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, chartPoints: [dummyZeroChartPoint], viewGenerator: {(chartPointModel, layer, chart) -> UIView? in
@@ -85,6 +89,7 @@ public extension IOBChart {
8589

8690
let layers: [ChartLayer?] = [
8791
gridLayer,
92+
currentTimeLayer,
8893
xAxisLayer,
8994
yAxisLayer,
9095
zeroGuidelineLayer,

LoopUI/Charts/PredictedGlucoseChart.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,10 @@ extension PredictedGlucoseChart {
131131
// Grid lines
132132
let gridLayer = ChartGuideLinesForValuesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, settings: guideLinesLayerSettings, axisValuesX: Array(xAxisValues.dropFirst().dropLast()), axisValuesY: yAxisValues)
133133

134+
let currentTimeValue = ChartAxisValueDate(date: Date(), formatter: { _ in "" })
135+
let currentTimeSettings = ChartGuideLinesLayerSettings(linesColor: colors.glucoseTint, linesWidth: 0.5)
136+
let currentTimeLayer = ChartGuideLinesForValuesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, settings: currentTimeSettings, axisValuesX: [currentTimeValue], axisValuesY: [])
137+
134138
let circles = ChartPointsScatterCirclesLayer(xAxis: xAxisLayer.axis, yAxis: yAxisLayer.axis, chartPoints: glucosePoints, displayDelay: 0, itemSize: CGSize(width: 4, height: 4), itemFillColor: colors.glucoseTint, optimized: true)
135139

136140
var alternatePrediction: ChartLayer?
@@ -169,6 +173,7 @@ extension PredictedGlucoseChart {
169173

170174
let layers: [ChartLayer?] = [
171175
gridLayer,
176+
currentTimeLayer,
172177
targetsLayer,
173178
xAxisLayer,
174179
yAxisLayer,

0 commit comments

Comments
 (0)