Skip to content

Commit f04d40f

Browse files
authored
Merge pull request #2023 from LoopKit/tidepool-sync
Tidepool Sync
2 parents fa03121 + b4a5567 commit f04d40f

File tree

4 files changed

+35
-15
lines changed

4 files changed

+35
-15
lines changed

Loop/Managers/DeviceDataManager.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -1273,7 +1273,7 @@ extension DeviceDataManager {
12731273

12741274
func deleteTestingCGMData(completion: ((Error?) -> Void)? = nil) {
12751275
guard let testingCGMManager = cgmManager as? TestingCGMManager else {
1276-
assertionFailure("\(#function) should be invoked only when a testing CGM manager is in use")
1276+
completion?(nil)
12771277
return
12781278
}
12791279

Loop/Managers/LoopAppManager.swift

+8
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,14 @@ extension LoopAppManager: ResetLoopManagerDelegate {
625625
}
626626
}
627627

628+
func resetTestingData(completion: @escaping () -> Void) {
629+
deviceDataManager.deleteTestingCGMData { [weak deviceDataManager] _ in
630+
deviceDataManager?.deleteTestingPumpData { _ in
631+
completion()
632+
}
633+
}
634+
}
635+
628636
func presentCouldNotResetLoopAlert(error: Error) {
629637
alertManager.presentCouldNotResetLoopAlert(error: error)
630638
}

Loop/Managers/ResetLoopManager.swift

+16-10
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ protocol ResetLoopManagerDelegate: AnyObject {
1212
func loopWillReset()
1313
func loopDidReset()
1414

15+
func resetTestingData(completion: @escaping () -> Void)
16+
1517
func presentConfirmationAlert(
1618
confirmAction: @escaping (_ pumpManager: PumpManager?, _ completion: @escaping () -> Void) -> Void,
1719
cancelAction: @escaping () -> Void
@@ -46,15 +48,17 @@ class ResetLoopManager {
4648
self?.resetAlertPresented = false
4749

4850
guard let pumpManager else {
49-
self?.resetLoop()
50-
completion()
51+
self?.resetLoop {
52+
completion()
53+
}
5154
return
5255
}
5356

5457
pumpManager.prepareForDeactivation() { [weak self] error in
5558
guard let error = error else {
56-
self?.resetLoop()
57-
completion()
59+
self?.resetLoop() {
60+
completion()
61+
}
5862
return
5963
}
6064

@@ -84,13 +88,15 @@ class ResetLoopManager {
8488
loopIsAlreadyReset = hasReset
8589
}
8690

87-
private func resetLoop() {
91+
private func resetLoop(completion: @escaping () -> Void) {
8892
delegate?.loopWillReset()
89-
90-
resetLoopDocuments()
91-
resetLoopUserDefaults()
92-
93-
delegate?.loopDidReset()
93+
94+
delegate?.resetTestingData { [weak self] in
95+
self?.resetLoopDocuments()
96+
self?.resetLoopUserDefaults()
97+
self?.delegate?.loopDidReset()
98+
completion()
99+
}
94100
}
95101

96102
private func resetLoopUserDefaults() {

Loop/View Controllers/StatusTableViewController.swift

+10-4
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,15 @@ final class StatusTableViewController: LoopChartsTableViewController {
239239
private var bolusState: PumpManagerStatus.BolusState = .noBolus {
240240
didSet {
241241
if oldValue != bolusState {
242-
// Bolus starting
243-
if case .inProgress = bolusState {
244-
bolusProgressReporter = deviceManager.pumpManager?.createBolusProgressReporter(reportingOn: DispatchQueue.main)
242+
switch bolusState {
243+
case .inProgress(_):
244+
guard case .inProgress = oldValue else {
245+
// Bolus starting
246+
bolusProgressReporter = deviceManager.pumpManager?.createBolusProgressReporter(reportingOn: DispatchQueue.main)
247+
break
248+
}
249+
default:
250+
break
245251
}
246252
refreshContext.update(with: .status)
247253
reloadData(animated: true)
@@ -784,7 +790,7 @@ final class StatusTableViewController: LoopChartsTableViewController {
784790
case (.enactingBolus, .enactingBolus):
785791
break
786792
case (.bolusing(let oldDose), .bolusing(let newDose)):
787-
if oldDose != newDose {
793+
if oldDose.syncIdentifier != newDose.syncIdentifier {
788794
tableView.reloadRows(at: [statusIndexPath], with: animated ? .fade : .none)
789795
}
790796
case (.pumpSuspended(resuming: let wasResuming), .pumpSuspended(resuming: let isResuming)):

0 commit comments

Comments
 (0)