Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions LoopFollow/Charts/BGChartModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ final class BGChartModel: ObservableObject {
@Published var show30Min: Bool = false
@Published var show90Min: Bool = false
@Published var showMidnight: Bool = false
@Published var smallGraphTreatments: Bool = true

private static let doseFormatter: NumberFormatter = {
let nf = NumberFormatter()
Expand Down Expand Up @@ -405,6 +406,7 @@ final class BGChartModel: ObservableObject {
show30Min = Storage.shared.show30MinLine.value
show90Min = Storage.shared.show90MinLine.value
showMidnight = Storage.shared.showMidnightLines.value
smallGraphTreatments = Storage.shared.smallGraphTreatments.value

let isLoop = Storage.shared.device.value == "Loop"
overrideColor = isLoop ? .green : .purple
Expand Down
36 changes: 24 additions & 12 deletions LoopFollow/Charts/BGChartView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1011,21 +1011,28 @@ private struct BGChartCanvas: View, Equatable {
}

var body: some View {
let showTreatments = !isSmall || model.smallGraphTreatments
let chart = Chart {
bgBandMarks
basalMarks
scheduledBasalMarks
if showTreatments {
bgBandMarks
basalMarks
scheduledBasalMarks
}
coneMarks
yesterdayMarks
if !isSmall {
yesterdayMarks
}
bgLineMarks
bgPointsMark
predictionLineMark
if !isSmall {
predictionVariantMarks
predictionVariantMarks
if showTreatments {
treatmentMarks
}
treatmentMarks
if !isSmall {
ruleMarks
} else if model.showMidnight {
midnightRuleMarks
}
}
.chartXScale(domain: windowStart ... windowEnd)
Expand Down Expand Up @@ -1423,11 +1430,16 @@ private struct BGChartCanvas: View, Equatable {
}
}
if model.showMidnight {
ForEach(model.midnightMarkers.filter { $0 >= windowStart && $0 <= windowEnd }, id: \.self) { d in
RuleMark(x: .value("midnight", d))
.lineStyle(StrokeStyle(lineWidth: 0.5, dash: [5, 3]))
.foregroundStyle(Color.teal.opacity(0.6))
}
midnightRuleMarks
}
}

@ChartContentBuilder
private var midnightRuleMarks: some ChartContent {
ForEach(model.midnightMarkers.filter { $0 >= windowStart && $0 <= windowEnd }, id: \.self) { d in
RuleMark(x: .value("midnight", d))
.lineStyle(StrokeStyle(lineWidth: 0.5, dash: [5, 3]))
.foregroundStyle(Color.teal.opacity(0.6))
}
}
}
Expand Down
3 changes: 3 additions & 0 deletions LoopFollow/Settings/GraphSettingsView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,12 @@ struct GraphSettingsView: View {
if nightscoutEnabled {
Section("Treatments") {
Toggle("Show Carb/Bolus Values", isOn: $showValues.value)
.onChange(of: showValues.value) { _ in markDirty() }
Toggle("Show Carb Absorption", isOn: $showAbsorption.value)
.onChange(of: showAbsorption.value) { _ in markDirty() }
Toggle("Treatments on Small Graph",
isOn: $smallGraphTreatments.value)
.onChange(of: smallGraphTreatments.value) { _ in markDirty() }
}
}

Expand Down
Loading