diff --git a/Loop/Managers/SettingsManager.swift b/Loop/Managers/SettingsManager.swift index 4da04fc75..ff80a6170 100644 --- a/Loop/Managers/SettingsManager.swift +++ b/Loop/Managers/SettingsManager.swift @@ -177,6 +177,12 @@ class SettingsManager { /// /// - Parameter timeZone: The time zone func setScheduleTimeZone(_ timeZone: TimeZone) { + let shouldUpdate = settings.basalRateSchedule?.timeZone != timeZone || + settings.carbRatioSchedule?.timeZone != timeZone || + settings.insulinSensitivitySchedule?.timeZone != timeZone || + settings.glucoseTargetRangeSchedule?.timeZone != timeZone + guard shouldUpdate else { return } + self.mutateLoopSettings { settings in settings.basalRateSchedule?.timeZone = timeZone settings.carbRatioSchedule?.timeZone = timeZone diff --git a/Loop/View Controllers/StatusTableViewController.swift b/Loop/View Controllers/StatusTableViewController.swift index b5902fe6b..eeb1ad143 100644 --- a/Loop/View Controllers/StatusTableViewController.swift +++ b/Loop/View Controllers/StatusTableViewController.swift @@ -293,7 +293,7 @@ final class StatusTableViewController: LoopChartsTableViewController { loopManager.startGlucoseValueStalenessTimerIfNeeded() } } - + private var bolusState: PumpManagerStatus.BolusState = .noBolus { didSet { if oldValue != bolusState { @@ -307,10 +307,6 @@ final class StatusTableViewController: LoopChartsTableViewController { default: break } - Task { @MainActor in - refreshContext.update(with: .status) - await reloadData(animated: true) - } } } } @@ -611,7 +607,6 @@ final class StatusTableViewController: LoopChartsTableViewController { self.currentCOBDescription = nil } - self.tableView.beginUpdates() if let hudView = self.hudView { // CGM Status if let glucose = self.loopManager.latestGlucose { @@ -641,8 +636,6 @@ final class StatusTableViewController: LoopChartsTableViewController { redrawCharts() - tableView.endUpdates() - reloading = false let reloadNow = !self.refreshContext.isEmpty @@ -2120,14 +2113,8 @@ extension StatusTableViewController: CompletionDelegate { extension StatusTableViewController: PumpManagerStatusObserver { func pumpManager(_ pumpManager: PumpManager, didUpdate status: PumpManagerStatus, oldStatus: PumpManagerStatus) { log.default("PumpManager:%{public}@ did update status", String(describing: type(of: pumpManager))) - Task { @MainActor in - - basalDeliveryState = status.basalDeliveryState - bolusState = status.bolusState - - refreshContext.update(with: .status) - await self.reloadData(animated: true) - } + basalDeliveryState = status.basalDeliveryState + bolusState = status.bolusState } }