Skip to content

Commit 900d9a9

Browse files
authored
[LOOP-3571] when .entirelyBelowRange display no bolus recommendation warning (#425)
1 parent 28cb782 commit 900d9a9

File tree

4 files changed

+11
-8
lines changed

4 files changed

+11
-8
lines changed

Loop/Managers/DoseMath.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import LoopKit
1414
private enum InsulinCorrection {
1515
case inRange
1616
case aboveRange(min: GlucoseValue, correcting: GlucoseValue, minTarget: HKQuantity, units: Double)
17-
case entirelyBelowRange(correcting: GlucoseValue, minTarget: HKQuantity, units: Double)
17+
case entirelyBelowRange(min: GlucoseValue, minTarget: HKQuantity, units: Double)
1818
case suspend(min: GlucoseValue)
1919
}
2020

@@ -25,7 +25,7 @@ extension InsulinCorrection {
2525
switch self {
2626
case .aboveRange(min: _, correcting: _, minTarget: _, units: let units):
2727
return units
28-
case .entirelyBelowRange(correcting: _, minTarget: _, units: let units):
28+
case .entirelyBelowRange(min: _, minTarget: _, units: let units):
2929
return units
3030
case .inRange, .suspend:
3131
return 0
@@ -70,8 +70,8 @@ extension InsulinCorrection {
7070
return .glucoseBelowSuspendThreshold(minGlucose: minimum)
7171
case .inRange:
7272
return .predictedGlucoseInRange
73-
case .entirelyBelowRange:
74-
return nil
73+
case .entirelyBelowRange(min: let min, minTarget: _, units: _):
74+
return .allGlucoseBelowTarget(minGlucose: min)
7575
case .aboveRange(min: let min, correcting: _, minTarget: let target, units: let units):
7676
if units > 0 && min.quantity < target {
7777
return .predictedGlucoseBelowTarget(minGlucose: min)
@@ -303,7 +303,7 @@ extension Collection where Element: GlucoseValue {
303303
}
304304

305305
return .entirelyBelowRange(
306-
correcting: min,
306+
min: min,
307307
minTarget: minGlucoseTargets.lowerBound,
308308
units: units
309309
)

Loop/Models/BolusRecommendation.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ extension BolusRecommendationNotice {
2222
let glucoseFormatter = NumberFormatter.glucoseFormatter(for: unit)
2323
let bgStr = glucoseFormatter.string(from: glucose.quantity, unit: unit)!
2424
return String(format: NSLocalizedString("Current glucose of %1$@ is below correction range.", comment: "Message when offering bolus recommendation even though bg is below range. (1: glucose value)"), bgStr)
25-
case .predictedGlucoseBelowTarget(minGlucose: let minGlucose):
25+
case .predictedGlucoseBelowTarget(minGlucose: let minGlucose), .allGlucoseBelowTarget(minGlucose: let minGlucose):
2626
let timeFormatter = DateFormatter()
2727
timeFormatter.dateStyle = .none
2828
timeFormatter.timeStyle = .short

Loop/View Models/BolusEntryViewModel.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import LoopKitUI
1717
import LoopUI
1818
import SwiftUI
1919

20-
protocol BolusEntryViewModelDelegate: class {
20+
protocol BolusEntryViewModelDelegate: AnyObject {
2121

2222
func withLoopState(do block: @escaping (LoopState) -> Void)
2323

@@ -64,6 +64,7 @@ final class BolusEntryViewModel: ObservableObject {
6464
enum Notice: Equatable {
6565
case predictedGlucoseInRange
6666
case predictedGlucoseBelowSuspendThreshold(suspendThreshold: HKQuantity)
67+
case glucoseBelowTarget
6768
case staleGlucoseData
6869
case stalePumpData
6970
}
@@ -634,6 +635,8 @@ final class BolusEntryViewModel: ObservableObject {
634635
}
635636
case .predictedGlucoseInRange:
636637
notice = .predictedGlucoseInRange
638+
case .allGlucoseBelowTarget(minGlucose: _):
639+
notice = .glucoseBelowTarget
637640
default:
638641
notice = nil
639642
}

Loop/Views/BolusEntryView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ struct BolusEntryView: View {
349349
caption: Text(String(format: NSLocalizedString("Your pump data is stale. %1$@ cannot recommend a bolus amount.", comment: "Caption for bolus screen notice when pump data is missing or stale"), appName)),
350350
severity: .critical
351351
)
352-
case .predictedGlucoseInRange:
352+
case .predictedGlucoseInRange, .glucoseBelowTarget:
353353
return WarningView(
354354
title: Text("No Bolus Recommended", comment: "Title for bolus screen notice when no bolus is recommended"),
355355
caption: Text("Based on your predicted glucose, no bolus is recommended.", comment: "Caption for bolus screen notice when no bolus is recommended for the predicted glucose")

0 commit comments

Comments
 (0)