@@ -197,7 +197,7 @@ final class LoopDataManager {
197
197
self . dataAccessQueue. async {
198
198
self . logger. default ( " Received notification of dosing changing " )
199
199
200
- self . insulinEffect = nil
200
+ self . clearCachedInsulinEffects ( )
201
201
self . remoteRecommendationNeedsUpdating = true
202
202
203
203
self . notify ( forChange: . insulin)
@@ -314,7 +314,7 @@ final class LoopDataManager {
314
314
// Invalidate cached effects based on this schedule
315
315
self . carbEffect = nil
316
316
self . carbsOnBoard = nil
317
- self . insulinEffect = nil
317
+ self . clearCachedInsulinEffects ( )
318
318
}
319
319
}
320
320
@@ -339,12 +339,7 @@ final class LoopDataManager {
339
339
}
340
340
}
341
341
342
- private var insulinEffect : [ GlucoseEffect ] ? {
343
- didSet {
344
- insulinEffectIncludingPendingInsulin = nil
345
- predictedGlucose = nil
346
- }
347
- }
342
+ private var insulinEffect : [ GlucoseEffect ] ?
348
343
349
344
private var insulinEffectIncludingPendingInsulin : [ GlucoseEffect ] ? {
350
345
didSet {
@@ -454,6 +449,12 @@ final class LoopDataManager {
454
449
455
450
return cachedRetrospectiveCorrection!
456
451
}
452
+
453
+ func clearCachedInsulinEffects( ) {
454
+ insulinEffect = nil
455
+ insulinEffectIncludingPendingInsulin = nil
456
+ predictedGlucose = nil
457
+ }
457
458
458
459
// MARK: - Background task management
459
460
@@ -717,7 +718,7 @@ extension LoopDataManager {
717
718
self . logger. debug ( " bolusConfirmed " )
718
719
self . lastRequestedBolus = nil
719
720
self . recommendedAutomaticDose = nil
720
- self . insulinEffect = nil
721
+ self . clearCachedInsulinEffects ( )
721
722
self . notify ( forChange: . insulin)
722
723
723
724
completion ? ( )
@@ -733,7 +734,7 @@ extension LoopDataManager {
733
734
self . dataAccessQueue. async {
734
735
self . logger. debug ( " bolusRequestFailed " )
735
736
self . lastRequestedBolus = nil
736
- self . insulinEffect = nil
737
+ self . clearCachedInsulinEffects ( )
737
738
self . notify ( forChange: . insulin)
738
739
739
740
completion ? ( )
@@ -754,7 +755,7 @@ extension LoopDataManager {
754
755
755
756
self . dataAccessQueue. async {
756
757
if error == nil {
757
- self . insulinEffect = nil
758
+ self . clearCachedInsulinEffects ( )
758
759
}
759
760
}
760
761
}
@@ -773,7 +774,7 @@ extension LoopDataManager {
773
774
doseStore. addDoses ( [ dose] , from: nil ) { ( error) in
774
775
if error == nil {
775
776
self . recommendedAutomaticDose = nil
776
- self . insulinEffect = nil
777
+ self . clearCachedInsulinEffects ( )
777
778
self . notify ( forChange: . insulin)
778
779
}
779
780
}
@@ -795,7 +796,7 @@ extension LoopDataManager {
795
796
completion ( . failure( error) )
796
797
} else if let newValue = newValue {
797
798
self . dataAccessQueue. async {
798
- self . insulinEffect = nil
799
+ self . clearCachedInsulinEffects ( )
799
800
800
801
if let newDoseStartDate = previousValue? . startDate {
801
802
// Prune back any counteraction effects for recomputation, after the effect delay
0 commit comments