Skip to content

Commit 8f5e68d

Browse files
authored
[LOOP-4622] Scenario loading without access to health (#564)
* only clear cache when health kit access is denied * use purge all dose entries
1 parent d7deb46 commit 8f5e68d

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

Loop/Managers/DeviceDataManager.swift

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,6 @@ extension DeviceDataManager: InsulinDeliveryStoreDelegate {
12621262
// MARK: - TestingPumpManager
12631263
extension DeviceDataManager {
12641264
func deleteTestingPumpData(completion: ((Error?) -> Void)? = nil) {
1265-
12661265
guard let testingPumpManager = pumpManager as? TestingPumpManager else {
12671266
completion?(nil)
12681267
return
@@ -1278,8 +1277,16 @@ extension DeviceDataManager {
12781277
return
12791278
}
12801279

1281-
healthStore.deleteObjects(of: self.doseStore.sampleType, predicate: devicePredicate) { success, deletedObjectCount, error in
1282-
if success {
1280+
guard !self.doseStore.sharingDenied else {
1281+
// only clear cache since access to health kit is denied
1282+
insulinDeliveryStore.purgeCachedInsulinDeliveryObjects() { error in
1283+
completion?(error)
1284+
}
1285+
return
1286+
}
1287+
1288+
insulinDeliveryStore.purgeAllDoseEntries(healthKitPredicate: devicePredicate) { error in
1289+
if error == nil {
12831290
insulinDeliveryStore.test_lastImmutableBasalEndDate = nil
12841291
}
12851292
completion?(error)
@@ -1288,11 +1295,18 @@ extension DeviceDataManager {
12881295
}
12891296

12901297
func deleteTestingCGMData(completion: ((Error?) -> Void)? = nil) {
1291-
12921298
guard let testingCGMManager = cgmManager as? TestingCGMManager else {
12931299
assertionFailure("\(#function) should be invoked only when a testing CGM manager is in use")
12941300
return
12951301
}
1302+
1303+
guard !glucoseStore.sharingDenied else {
1304+
// only clear cache since access to health kit is denied
1305+
glucoseStore.purgeCachedGlucoseObjects() { error in
1306+
completion?(error)
1307+
}
1308+
return
1309+
}
12961310

12971311
let predicate = HKQuery.predicateForObjects(from: [testingCGMManager.testingDevice])
12981312
glucoseStore.purgeAllGlucoseSamples(healthKitPredicate: predicate) { error in

0 commit comments

Comments
 (0)