Skip to content

Commit 273f875

Browse files
committed
Only display overrides that overlap Live Activity chart window
1 parent aeab225 commit 273f875

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

Loop/Managers/Live Activity/LiveActivityManager.swift

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,21 @@ class LiveActivityManager : LiveActivityManagerProxy {
143143

144144
var presetContext: Preset? = nil
145145
if let override = self.loopSettings.preMealOverride ?? self.loopSettings.scheduleOverride, let start = glucoseSamples.first?.startDate {
146-
presetContext = Preset(
147-
title: override.getTitle(),
148-
startDate: max(override.startDate, start),
149-
endDate: override.duration.isInfinite ? endDateChart : min(override.actualEndDate, endDateChart),
150-
minValue: override.settings.targetRange?.lowerBound.doubleValue(for: unit) ?? 0,
151-
maxValue: override.settings.targetRange?.upperBound.doubleValue(for: unit) ?? 0
152-
)
146+
let presetStart = max(override.startDate, start)
147+
let presetEnd = override.duration.isInfinite ? endDateChart : min(override.actualEndDate, endDateChart)
148+
// Only create a preset if it overlaps the chart window. If the override ended
149+
// before the chart window starts (e.g. spacious mode only shows 2h of history),
150+
// presetEnd < presetStart and drawing a RectangleMark with those backwards dates
151+
// forces SwiftUI Charts to expand the x-axis far into the past.
152+
if presetStart <= presetEnd {
153+
presetContext = Preset(
154+
title: override.getTitle(),
155+
startDate: presetStart,
156+
endDate: presetEnd,
157+
minValue: override.settings.targetRange?.lowerBound.doubleValue(for: unit) ?? 0,
158+
maxValue: override.settings.targetRange?.upperBound.doubleValue(for: unit) ?? 0
159+
)
160+
}
153161
}
154162

155163
var glucoseRanges: [GlucoseRangeValue] = []

0 commit comments

Comments
 (0)