Skip to content

Commit

Permalink
Merge pull request #2023 from LoopKit/tidepool-sync
Browse files Browse the repository at this point in the history
Tidepool Sync
  • Loading branch information
ps2 authored Jul 10, 2023
2 parents fa03121 + b4a5567 commit f04d40f
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 15 deletions.
2 changes: 1 addition & 1 deletion Loop/Managers/DeviceDataManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1273,7 +1273,7 @@ extension DeviceDataManager {

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

Expand Down
8 changes: 8 additions & 0 deletions Loop/Managers/LoopAppManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -625,6 +625,14 @@ extension LoopAppManager: ResetLoopManagerDelegate {
}
}

func resetTestingData(completion: @escaping () -> Void) {
deviceDataManager.deleteTestingCGMData { [weak deviceDataManager] _ in
deviceDataManager?.deleteTestingPumpData { _ in
completion()
}
}
}

func presentCouldNotResetLoopAlert(error: Error) {
alertManager.presentCouldNotResetLoopAlert(error: error)
}
Expand Down
26 changes: 16 additions & 10 deletions Loop/Managers/ResetLoopManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ protocol ResetLoopManagerDelegate: AnyObject {
func loopWillReset()
func loopDidReset()

func resetTestingData(completion: @escaping () -> Void)

func presentConfirmationAlert(
confirmAction: @escaping (_ pumpManager: PumpManager?, _ completion: @escaping () -> Void) -> Void,
cancelAction: @escaping () -> Void
Expand Down Expand Up @@ -46,15 +48,17 @@ class ResetLoopManager {
self?.resetAlertPresented = false

guard let pumpManager else {
self?.resetLoop()
completion()
self?.resetLoop {
completion()
}
return
}

pumpManager.prepareForDeactivation() { [weak self] error in
guard let error = error else {
self?.resetLoop()
completion()
self?.resetLoop() {
completion()
}
return
}

Expand Down Expand Up @@ -84,13 +88,15 @@ class ResetLoopManager {
loopIsAlreadyReset = hasReset
}

private func resetLoop() {
private func resetLoop(completion: @escaping () -> Void) {
delegate?.loopWillReset()

resetLoopDocuments()
resetLoopUserDefaults()

delegate?.loopDidReset()

delegate?.resetTestingData { [weak self] in
self?.resetLoopDocuments()
self?.resetLoopUserDefaults()
self?.delegate?.loopDidReset()
completion()
}
}

private func resetLoopUserDefaults() {
Expand Down
14 changes: 10 additions & 4 deletions Loop/View Controllers/StatusTableViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,15 @@ final class StatusTableViewController: LoopChartsTableViewController {
private var bolusState: PumpManagerStatus.BolusState = .noBolus {
didSet {
if oldValue != bolusState {
// Bolus starting
if case .inProgress = bolusState {
bolusProgressReporter = deviceManager.pumpManager?.createBolusProgressReporter(reportingOn: DispatchQueue.main)
switch bolusState {
case .inProgress(_):
guard case .inProgress = oldValue else {
// Bolus starting
bolusProgressReporter = deviceManager.pumpManager?.createBolusProgressReporter(reportingOn: DispatchQueue.main)
break
}
default:
break
}
refreshContext.update(with: .status)
reloadData(animated: true)
Expand Down Expand Up @@ -784,7 +790,7 @@ final class StatusTableViewController: LoopChartsTableViewController {
case (.enactingBolus, .enactingBolus):
break
case (.bolusing(let oldDose), .bolusing(let newDose)):
if oldDose != newDose {
if oldDose.syncIdentifier != newDose.syncIdentifier {
tableView.reloadRows(at: [statusIndexPath], with: animated ? .fade : .none)
}
case (.pumpSuspended(resuming: let wasResuming), .pumpSuspended(resuming: let isResuming)):
Expand Down

0 comments on commit f04d40f

Please sign in to comment.