Skip to content

Commit f5e62fd

Browse files
authored
Update for QuantityFormatter changes (#575)
1 parent c788285 commit f5e62fd

28 files changed

+105
-135
lines changed

Loop Status Extension/StatusViewController.swift

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -267,11 +267,10 @@ class StatusViewController: UIViewController, NCWidgetProviding {
267267
self.hudView.pumpStatusHUD.lifecycleProgress = context.pumpLifecycleProgressContext
268268

269269
// Active carbs
270-
let carbsFormatter = QuantityFormatter()
271-
carbsFormatter.setPreferredNumberFormatter(for: carbUnit)
270+
let carbsFormatter = QuantityFormatter(for: carbUnit)
272271

273272
if let carbsOnBoard = context.carbsOnBoard,
274-
let activeCarbsNumberString = carbsFormatter.string(from: HKQuantity(unit: carbUnit, doubleValue: carbsOnBoard), for: carbUnit)
273+
let activeCarbsNumberString = carbsFormatter.string(from: HKQuantity(unit: carbUnit, doubleValue: carbsOnBoard))
275274
{
276275
self.activeCarbsAmountLabel.text = String(format: NSLocalizedString("%1$@", comment: "The subtitle format describing the grams of active carbs. (1: localized carb value description)"), activeCarbsNumberString)
277276
} else {
@@ -299,9 +298,6 @@ class StatusViewController: UIViewController, NCWidgetProviding {
299298
}
300299

301300
// Charts
302-
let glucoseFormatter = QuantityFormatter()
303-
glucoseFormatter.setPreferredNumberFormatter(for: unit)
304-
305301
self.charts.predictedGlucose.glucoseUnit = unit
306302
self.charts.predictedGlucose.setGlucoseValues(glucose)
307303

Loop/Extensions/DeviceDataManager+BolusEntryViewModelDelegate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ extension DeviceDataManager: BolusEntryViewModelDelegate, ManualDoseViewModelDel
7070
}
7171

7272
var preferredGlucoseUnit: HKUnit {
73-
return displayGlucoseUnitObservable.displayGlucoseUnit
73+
return displayGlucosePreference.unit
7474
}
7575

7676
var pumpInsulinType: InsulinType? {

Loop/Extensions/DeviceDataManager+DeviceStatus.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ extension DeviceDataManager {
8787
{
8888
return .openAppURL(url)
8989
} else if let cgmManagerUI = (cgmManager as? CGMManagerUI) {
90-
return .presentViewController(cgmManagerUI.settingsViewController(bluetoothProvider: bluetoothProvider, displayGlucoseUnitObservable: displayGlucoseUnitObservable, colorPalette: .default, allowDebugFeatures: FeatureFlags.allowDebugFeatures))
90+
return .presentViewController(cgmManagerUI.settingsViewController(bluetoothProvider: bluetoothProvider, displayGlucosePreference: displayGlucosePreference, colorPalette: .default, allowDebugFeatures: FeatureFlags.allowDebugFeatures))
9191
} else {
9292
return .setupNewCGM
9393
}

Loop/Managers/DeviceDataManager.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ final class DeviceDataManager {
8484

8585
private var displayGlucoseUnitObservers = WeakSynchronizedSet<DisplayGlucoseUnitObserver>()
8686

87-
public private(set) var displayGlucoseUnitObservable: DisplayGlucoseUnitObservable
87+
public private(set) var displayGlucosePreference: DisplayGlucosePreference
8888

8989
// MARK: - CGM
9090

@@ -341,7 +341,7 @@ final class DeviceDataManager {
341341
self.automaticDosingStatus = automaticDosingStatus
342342

343343
// HealthStorePreferredGlucoseUnitDidChange will be notified once the user completes the health access form. Set to .milligramsPerDeciliter until then
344-
displayGlucoseUnitObservable = DisplayGlucoseUnitObservable(displayGlucoseUnit: .milligramsPerDeciliter)
344+
displayGlucosePreference = DisplayGlucosePreference(displayGlucoseUnit: .milligramsPerDeciliter)
345345

346346
self.trustedTimeChecker = trustedTimeChecker
347347

@@ -452,7 +452,7 @@ final class DeviceDataManager {
452452

453453
Task { @MainActor in
454454
if let unit = await self.healthStore.cachedPreferredUnits(for: .bloodGlucose) {
455-
self.displayGlucoseUnitObservable.displayGlucoseUnitDidChange(to: unit)
455+
self.displayGlucosePreference.unitDidChange(to: unit)
456456
self.notifyObserversOfDisplayGlucoseUnitChange(to: unit)
457457
}
458458
}
@@ -599,7 +599,7 @@ final class DeviceDataManager {
599599
return .failure(UnknownCGMManagerIdentifierError())
600600
}
601601

602-
let result = cgmManagerUIType.setupViewController(bluetoothProvider: bluetoothProvider, displayGlucoseUnitObservable: displayGlucoseUnitObservable, colorPalette: .default, allowDebugFeatures: FeatureFlags.allowDebugFeatures, prefersToSkipUserInteraction: prefersToSkipUserInteraction)
602+
let result = cgmManagerUIType.setupViewController(bluetoothProvider: bluetoothProvider, displayGlucosePreference: displayGlucosePreference, colorPalette: .default, allowDebugFeatures: FeatureFlags.allowDebugFeatures, prefersToSkipUserInteraction: prefersToSkipUserInteraction)
603603
if case .createdAndOnboarded(let cgmManagerUI) = result {
604604
cgmManagerOnboarding(didCreateCGMManager: cgmManagerUI)
605605
cgmManagerOnboarding(didOnboardCGMManager: cgmManagerUI)
@@ -1697,7 +1697,7 @@ extension DeviceDataManager {
16971697
let queue = DispatchQueue.main
16981698
displayGlucoseUnitObservers.insert(observer, queue: queue)
16991699
queue.async {
1700-
observer.displayGlucoseUnitDidChange(to: self.displayGlucoseUnitObservable.displayGlucoseUnit)
1700+
observer.unitDidChange(to: self.displayGlucosePreference.unit)
17011701
}
17021702
}
17031703

@@ -1707,7 +1707,7 @@ extension DeviceDataManager {
17071707

17081708
func notifyObserversOfDisplayGlucoseUnitChange(to displayGlucoseUnit: HKUnit) {
17091709
self.displayGlucoseUnitObservers.forEach {
1710-
$0.displayGlucoseUnitDidChange(to: displayGlucoseUnit)
1710+
$0.unitDidChange(to: displayGlucoseUnit)
17111711
}
17121712
}
17131713
}

Loop/Managers/LoopAppManager.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ class LoopAppManager: NSObject {
206206
trustedTimeChecker: trustedTimeChecker
207207
)
208208
settingsManager.deviceStatusProvider = deviceDataManager
209-
settingsManager.displayGlucoseUnitObservable = deviceDataManager.displayGlucoseUnitObservable
209+
settingsManager.displayGlucosePreference = deviceDataManager.displayGlucosePreference
210210

211211

212212
overrideHistory.delegate = self

Loop/Managers/NotificationManager.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,7 @@ extension NotificationManager {
139139
@MainActor
140140
static func sendRemoteBolusNotification(amount: Double) {
141141
let notification = UNMutableNotificationContent()
142-
let quantityFormatter = QuantityFormatter()
143-
quantityFormatter.setPreferredNumberFormatter(for: .internationalUnit())
142+
let quantityFormatter = QuantityFormatter(for: .internationalUnit())
144143
guard let amountDescription = quantityFormatter.numberFormatter.string(from: amount) else {
145144
return
146145
}
@@ -163,8 +162,7 @@ extension NotificationManager {
163162
@MainActor
164163
static func sendRemoteBolusFailureNotification(for error: Error, amount: Double) {
165164
let notification = UNMutableNotificationContent()
166-
let quantityFormatter = QuantityFormatter()
167-
quantityFormatter.setPreferredNumberFormatter(for: .internationalUnit())
165+
let quantityFormatter = QuantityFormatter(for: .internationalUnit())
168166
guard let amountDescription = quantityFormatter.numberFormatter.string(from: amount) else {
169167
return
170168
}

Loop/Managers/OnboardingManager.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ class OnboardingManager {
132132
}
133133

134134
private func displayOnboarding(_ onboarding: OnboardingUI, resuming: Bool) -> Bool {
135-
var onboardingViewController = onboarding.onboardingViewController(onboardingProvider: self, displayGlucoseUnitObservable: deviceDataManager.displayGlucoseUnitObservable, colorPalette: .default)
135+
var onboardingViewController = onboarding.onboardingViewController(onboardingProvider: self, displayGlucosePreference: deviceDataManager.displayGlucosePreference, colorPalette: .default)
136136
onboardingViewController.cgmManagerOnboardingDelegate = deviceDataManager
137137
onboardingViewController.pumpManagerOnboardingDelegate = deviceDataManager
138138
onboardingViewController.serviceOnboardingDelegate = servicesManager
@@ -352,7 +352,7 @@ extension OnboardingManager: CGMManagerProvider {
352352
return .failure(OnboardingError.invalidState)
353353
}
354354

355-
return .success(.userInteractionRequired(cgmManagerUI.settingsViewController(bluetoothProvider: self, displayGlucoseUnitObservable: deviceDataManager.displayGlucoseUnitObservable, colorPalette: .default, allowDebugFeatures: FeatureFlags.allowDebugFeatures)))
355+
return .success(.userInteractionRequired(cgmManagerUI.settingsViewController(bluetoothProvider: self, displayGlucosePreference: deviceDataManager.displayGlucosePreference, colorPalette: .default, allowDebugFeatures: FeatureFlags.allowDebugFeatures)))
356356
}
357357
}
358358

Loop/Managers/SettingsManager.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class SettingsManager {
3232

3333
var alertMuter: AlertMuter
3434

35-
var displayGlucoseUnitObservable: DisplayGlucoseUnitObservable?
35+
var displayGlucosePreference: DisplayGlucosePreference?
3636

3737
public var latestSettings: StoredSettings
3838

@@ -139,7 +139,7 @@ class SettingsManager {
139139
controllerDevice: UIDevice.current.controllerDevice,
140140
cgmDevice: deviceStatusProvider?.cgmManagerStatus?.device,
141141
pumpDevice: deviceStatusProvider?.pumpManagerStatus?.device,
142-
bloodGlucoseUnit: displayGlucoseUnitObservable?.displayGlucoseUnit,
142+
bloodGlucoseUnit: displayGlucosePreference?.unit,
143143
automaticDosingStrategy: newLoopSettings.automaticDosingStrategy)
144144
}
145145

Loop/View Controllers/CarbAbsorptionViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ final class CarbAbsorptionViewController: LoopChartsTableViewController, Identif
504504
let navigationWrapper: UINavigationController
505505
if FeatureFlags.simpleBolusCalculatorEnabled && !automaticDosingStatus.automaticDosingEnabled {
506506
let viewModel = SimpleBolusViewModel(delegate: deviceManager, displayMealEntry: true)
507-
let bolusEntryView = SimpleBolusView(viewModel: viewModel).environmentObject(DisplayGlucoseUnitObservable(displayGlucoseUnit: .milligramsPerDeciliter))
507+
let bolusEntryView = SimpleBolusView(viewModel: viewModel).environmentObject(DisplayGlucosePreference(displayGlucoseUnit: .milligramsPerDeciliter))
508508
let hostingController = DismissibleHostingController(rootView: bolusEntryView, isModalInPresentation: false)
509509
navigationWrapper = UINavigationController(rootViewController: hostingController)
510510
hostingController.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: navigationWrapper, action: #selector(dismissWithAnimation))

Loop/View Controllers/CarbEntryViewController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ final class CarbEntryViewController: LoopChartsTableViewController, Identifiable
2828
var preferredCarbUnit = HKUnit.gram()
2929

3030
private var glucoseUnit: HKUnit {
31-
return deviceManager.displayGlucoseUnitObservable.displayGlucoseUnit
31+
return deviceManager.displayGlucosePreference.unit
3232
}
3333

3434
var maxCarbEntryQuantity = LoopConstants.maxCarbEntryQuantity
@@ -566,7 +566,7 @@ final class CarbEntryViewController: LoopChartsTableViewController, Identifiable
566566

567567
viewModel.analyticsServicesManager = deviceManager.analyticsServicesManager
568568

569-
let bolusEntryView = BolusEntryView(viewModel: viewModel).environmentObject(deviceManager.displayGlucoseUnitObservable)
569+
let bolusEntryView = BolusEntryView(viewModel: viewModel).environmentObject(deviceManager.displayGlucosePreference)
570570

571571
// After confirming a bolus, pop back to this controller's predecessor, i.e. all the way back out of the carb flow.
572572
let predecessorViewControllerType = (navigationController?.viewControllers.dropLast().last).map { type(of: $0) } ?? UIViewController.self

0 commit comments

Comments
 (0)