Skip to content

Commit 3d42779

Browse files
authored
Dispatch dosestore completions back to main (#1302)
1 parent 445ae98 commit 3d42779

2 files changed

Lines changed: 40 additions & 30 deletions

File tree

Cartfile.resolved

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
github "LoopKit/Amplitude-iOS" "2137d5fd44bf630ed33e1e72d7af6d8f8612f270"
22
github "LoopKit/CGMBLEKit" "edcf503ef8fe260b69ca98eae508e679dfd9ad69"
33
github "LoopKit/G4ShareSpy" "88c5a296e83ce618319ae365a7e6da76d9be126b"
4-
github "LoopKit/LoopKit" "0bdd536a1ecd0e0d5a948f73d743f95d70686bed"
4+
github "LoopKit/LoopKit" "6940ab10d258b21e0a33aa5729b1111a8d332d77"
55
github "LoopKit/MKRingProgressView" "f548a5c64832be2d37d7c91b5800e284887a2a0a"
66
github "LoopKit/dexcom-share-client-swift" "c37d87fcf121c44721e87c9e6d2bea94e48728cc"
77
github "i-schuetz/SwiftCharts" "0.6.5"
8-
github "ps2/rileylink_ios" "37b7f578e399d41886237ef1046a912156cbb9fd"
8+
github "ps2/rileylink_ios" "73d816f53d3a7bc6d58c904bd4160660315a2038"

Loop/View Controllers/StatusTableViewController.swift

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,10 @@ final class StatusTableViewController: ChartsTableViewController {
353353
if currentContext.contains(.carbs) {
354354
reloadGroup.enter()
355355
manager.carbStore.getCarbsOnBoardValues(start: startDate, effectVelocities: manager.settings.dynamicCarbAbsorptionEnabled ? state.insulinCounteractionEffects : nil) { (values) in
356-
cobValues = values
357-
reloadGroup.leave()
356+
DispatchQueue.main.async {
357+
cobValues = values
358+
reloadGroup.leave()
359+
}
358360
}
359361
}
360362

@@ -364,49 +366,57 @@ final class StatusTableViewController: ChartsTableViewController {
364366
if currentContext.contains(.glucose) {
365367
reloadGroup.enter()
366368
self.deviceManager.loopManager.glucoseStore.getCachedGlucoseSamples(start: startDate) { (values) -> Void in
367-
glucoseValues = values
368-
reloadGroup.leave()
369+
DispatchQueue.main.async {
370+
glucoseValues = values
371+
reloadGroup.leave()
372+
}
369373
}
370374
}
371375

372376
if currentContext.contains(.insulin) {
373377
reloadGroup.enter()
374378
deviceManager.loopManager.doseStore.getInsulinOnBoardValues(start: startDate) { (result) -> Void in
375-
switch result {
376-
case .failure(let error):
377-
self.log.error("DoseStore failed to get insulin on board values: %{public}@", String(describing: error))
378-
retryContext.update(with: .insulin)
379-
iobValues = []
380-
case .success(let values):
381-
iobValues = values
379+
DispatchQueue.main.async {
380+
switch result {
381+
case .failure(let error):
382+
self.log.error("DoseStore failed to get insulin on board values: %{public}@", String(describing: error))
383+
retryContext.update(with: .insulin)
384+
iobValues = []
385+
case .success(let values):
386+
iobValues = values
387+
}
388+
reloadGroup.leave()
382389
}
383-
reloadGroup.leave()
384390
}
385391

386392
reloadGroup.enter()
387393
deviceManager.loopManager.doseStore.getNormalizedDoseEntries(start: startDate) { (result) -> Void in
388-
switch result {
389-
case .failure(let error):
390-
self.log.error("DoseStore failed to get normalized dose entries: %{public}@", String(describing: error))
391-
retryContext.update(with: .insulin)
392-
doseEntries = []
393-
case .success(let doses):
394-
doseEntries = doses
394+
DispatchQueue.main.async {
395+
switch result {
396+
case .failure(let error):
397+
self.log.error("DoseStore failed to get normalized dose entries: %{public}@", String(describing: error))
398+
retryContext.update(with: .insulin)
399+
doseEntries = []
400+
case .success(let doses):
401+
doseEntries = doses
402+
}
403+
reloadGroup.leave()
395404
}
396-
reloadGroup.leave()
397405
}
398406

399407
reloadGroup.enter()
400408
deviceManager.loopManager.doseStore.getTotalUnitsDelivered(since: Calendar.current.startOfDay(for: Date())) { (result) in
401-
switch result {
402-
case .failure:
403-
retryContext.update(with: .insulin)
404-
totalDelivery = nil
405-
case .success(let total):
406-
totalDelivery = total.value
407-
}
409+
DispatchQueue.main.async {
410+
switch result {
411+
case .failure:
412+
retryContext.update(with: .insulin)
413+
totalDelivery = nil
414+
case .success(let total):
415+
totalDelivery = total.value
416+
}
408417

409-
reloadGroup.leave()
418+
reloadGroup.leave()
419+
}
410420
}
411421
}
412422

0 commit comments

Comments
 (0)