From 97bbb8dee877ffb644b41074fb69675b82bb63b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bj=C3=B6rkert?= Date: Fri, 13 Nov 2026 08:17:16 +0100 Subject: [PATCH] Treat a zero-duration temp basal as ended at its start Trio uploads temp basal durations in whole minutes, so a temp cancelled within its first minute arrives with duration 0. Only a temp basal without a duration is drawn as running for 30 minutes. --- LoopFollow/Controllers/Nightscout/Treatments/Basals.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/LoopFollow/Controllers/Nightscout/Treatments/Basals.swift b/LoopFollow/Controllers/Nightscout/Treatments/Basals.swift index 7846de081..fe56c70a2 100644 --- a/LoopFollow/Controllers/Nightscout/Treatments/Basals.swift +++ b/LoopFollow/Controllers/Nightscout/Treatments/Basals.swift @@ -87,9 +87,10 @@ extension MainViewController { let startDot = basalGraphStruct(basalRate: basalRate, date: dateTimeStamp) basalData.append(startDot) - // End dot + // End dot. A duration of 0 is a temp that ended where it started, such as one + // cancelled within its first minute; only a missing duration is taken as still running. var lastDot = dateTimeStamp + (duration * 60) - if i == tempArray.count - 1, duration == 0.0 { + if i == tempArray.count - 1, currentEntry["duration"] == nil { lastDot = dateTimeStamp + (30 * 60) } latestBasal = Localizer.formatToLocalizedString(basalRate, maxFractionDigits: 2, minFractionDigits: 0)