From c84a0a5e87b1dcb86009683c586ed141a25389b9 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Mon, 25 Sep 2023 15:28:24 -0300 Subject: [PATCH 01/30] [COASTAL-1291] plugin identifier is no longer class property (#29) --- LoopOnboardingKitUI/LoopOnboardingUI.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index b2fe4b2..c5760e2 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -19,7 +19,7 @@ public final class LoopOnboardingUI: OnboardingUI { public weak var onboardingDelegate: OnboardingDelegate? - public static let pluginIdentifier = "LoopOnboarding" + public let pluginIdentifier = "LoopOnboarding" public var isOnboarded: Bool { didSet { From fb1cb871473a17bbb5e406cd944962dfba409f4d Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Mon, 25 Sep 2023 15:28:24 -0300 Subject: [PATCH 02/30] [COASTAL-1291] plugin identifier is no longer class property (#29) --- LoopOnboardingKitUI/LoopOnboardingUI.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index b2fe4b2..c5760e2 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -19,7 +19,7 @@ public final class LoopOnboardingUI: OnboardingUI { public weak var onboardingDelegate: OnboardingDelegate? - public static let pluginIdentifier = "LoopOnboarding" + public let pluginIdentifier = "LoopOnboarding" public var isOnboarded: Bool { didSet { From 490ee353e43cdd5dbab15e93188a143e044a9219 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Tue, 12 Dec 2023 12:36:57 -0600 Subject: [PATCH 03/30] Updates for LOOP-4752 --- .../View Controllers/OnboardingUICoordinator.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index cc61f2d..1d93ac5 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -349,16 +349,18 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum } extension OnboardingUICoordinator: TherapySettingsViewModelDelegate { + func syncBasalRateSchedule(items: [RepeatingScheduleValue], completion: @escaping (Result) -> Void) { // Since pump isn't set up, this syncing shouldn't do anything assertionFailure() } - func syncDeliveryLimits(deliveryLimits: DeliveryLimits, completion: @escaping (Result) -> Void) { + func syncDeliveryLimits(deliveryLimits: LoopKit.DeliveryLimits) async throws -> LoopKit.DeliveryLimits { // Since pump isn't set up, this syncing shouldn't do anything assertionFailure() + return deliveryLimits } - + func saveCompletion(therapySettings: TherapySettings) { stepFinished() } From c0b28c54b5afdcf158348133292718d634d09a1d Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Tue, 12 Dec 2023 12:36:57 -0600 Subject: [PATCH 04/30] Updates for LOOP-4752 --- .../View Controllers/OnboardingUICoordinator.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index cc61f2d..1d93ac5 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -349,16 +349,18 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum } extension OnboardingUICoordinator: TherapySettingsViewModelDelegate { + func syncBasalRateSchedule(items: [RepeatingScheduleValue], completion: @escaping (Result) -> Void) { // Since pump isn't set up, this syncing shouldn't do anything assertionFailure() } - func syncDeliveryLimits(deliveryLimits: DeliveryLimits, completion: @escaping (Result) -> Void) { + func syncDeliveryLimits(deliveryLimits: LoopKit.DeliveryLimits) async throws -> LoopKit.DeliveryLimits { // Since pump isn't set up, this syncing shouldn't do anything assertionFailure() + return deliveryLimits } - + func saveCompletion(therapySettings: TherapySettings) { stepFinished() } From 39415752df9a0ee450fc19412c7d43c706651fe5 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Wed, 14 Feb 2024 13:32:25 -0800 Subject: [PATCH 05/30] [WIP][LOOP-4793] Beginning XCUI Tests --- LoopOnboardingKitUI/Views/WelcomeView.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/LoopOnboardingKitUI/Views/WelcomeView.swift b/LoopOnboardingKitUI/Views/WelcomeView.swift index 4c2d89f..5936d8b 100644 --- a/LoopOnboardingKitUI/Views/WelcomeView.swift +++ b/LoopOnboardingKitUI/Views/WelcomeView.swift @@ -19,10 +19,13 @@ struct WelcomeView: View { Text(LocalizedString("Welcome to Loop", comment: "Title on WelcomeView")) .font(.largeTitle) .fontWeight(.semibold) + Image(frameworkImage: "Loop", decorative: true) .onLongPressGesture(minimumDuration: 2) { didLongPressOnLogo?() } + .accessibilityHidden(false) + .accessibilityIdentifier("loopLogo") Text(LocalizedString("Before using Loop you need to configure a few settings. These settings should be entered with precision and care; they are a critical part of how Loop determines the right amount of insulin to deliver.\n\nIf you are new to Loop, work with your diabetes support team to determine the settings that work best for you.", comment: "Descriptive text on WelcomeView")) .foregroundColor(.secondary) From 8da22f144165c5ae0a5e8380cdae7d06d5bf5525 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Wed, 14 Feb 2024 13:32:25 -0800 Subject: [PATCH 06/30] [WIP][LOOP-4793] Beginning XCUI Tests --- LoopOnboardingKitUI/Views/WelcomeView.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/LoopOnboardingKitUI/Views/WelcomeView.swift b/LoopOnboardingKitUI/Views/WelcomeView.swift index 4c2d89f..5936d8b 100644 --- a/LoopOnboardingKitUI/Views/WelcomeView.swift +++ b/LoopOnboardingKitUI/Views/WelcomeView.swift @@ -19,10 +19,13 @@ struct WelcomeView: View { Text(LocalizedString("Welcome to Loop", comment: "Title on WelcomeView")) .font(.largeTitle) .fontWeight(.semibold) + Image(frameworkImage: "Loop", decorative: true) .onLongPressGesture(minimumDuration: 2) { didLongPressOnLogo?() } + .accessibilityHidden(false) + .accessibilityIdentifier("loopLogo") Text(LocalizedString("Before using Loop you need to configure a few settings. These settings should be entered with precision and care; they are a critical part of how Loop determines the right amount of insulin to deliver.\n\nIf you are new to Loop, work with your diabetes support team to determine the settings that work best for you.", comment: "Descriptive text on WelcomeView")) .foregroundColor(.secondary) From effee9e8965b234c8217fc6d3afc35a91fd5d45c Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Fri, 1 Mar 2024 15:02:42 -0600 Subject: [PATCH 07/30] Types moved to LoopAlgorithm --- .../View Controllers/OnboardingUICoordinator.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 1d93ac5..2b6e051 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -14,6 +14,7 @@ import LoopKit import LoopKitUI import NightscoutServiceKit import LoopSupportKitUI +import LoopAlgorithm enum OnboardingScreen: CaseIterable { case welcome From 52110dcbbc85ef2fa071b44a531ef67237645108 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Fri, 1 Mar 2024 15:02:42 -0600 Subject: [PATCH 08/30] Types moved to LoopAlgorithm --- .../View Controllers/OnboardingUICoordinator.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 1d93ac5..2b6e051 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -14,6 +14,7 @@ import LoopKit import LoopKitUI import NightscoutServiceKit import LoopSupportKitUI +import LoopAlgorithm enum OnboardingScreen: CaseIterable { case welcome From 739cacb2619dad1445c915437f8158ca1426eb6f Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Mon, 8 Jul 2024 10:25:41 -0500 Subject: [PATCH 09/30] Updates for OnboardingUI protocol changes --- LoopOnboardingKitUI/LoopOnboardingUI.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index c5760e2..fc89fcf 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -13,6 +13,7 @@ import LoopKitUI import LoopOnboardingKit public final class LoopOnboardingUI: OnboardingUI { + public static func createOnboarding() -> OnboardingUI { return Self() } @@ -53,7 +54,7 @@ public final class LoopOnboardingUI: OnboardingUI { ] } - public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette) -> (UIViewController & OnboardingViewController) { + public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette, adultChildInsulinModelSelectionEnabled: Bool) -> (UIViewController & OnboardingViewController) { return OnboardingUICoordinator(onboarding: self, onboardingProvider: onboardingProvider, initialTherapySettings: onboardingProvider.onboardingTherapySettings, displayGlucosePreference: displayGlucosePreference, colorPalette: colorPalette) } From b32b94ce4692dbf8821032f0b49acdb292147269 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Mon, 8 Jul 2024 10:25:41 -0500 Subject: [PATCH 10/30] Updates for OnboardingUI protocol changes --- LoopOnboardingKitUI/LoopOnboardingUI.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index c5760e2..fc89fcf 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -13,6 +13,7 @@ import LoopKitUI import LoopOnboardingKit public final class LoopOnboardingUI: OnboardingUI { + public static func createOnboarding() -> OnboardingUI { return Self() } @@ -53,7 +54,7 @@ public final class LoopOnboardingUI: OnboardingUI { ] } - public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette) -> (UIViewController & OnboardingViewController) { + public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette, adultChildInsulinModelSelectionEnabled: Bool) -> (UIViewController & OnboardingViewController) { return OnboardingUICoordinator(onboarding: self, onboardingProvider: onboardingProvider, initialTherapySettings: onboardingProvider.onboardingTherapySettings, displayGlucosePreference: displayGlucosePreference, colorPalette: colorPalette) } From f96a2973283343e4697944229ec66c594a63d672 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Fri, 25 Oct 2024 14:39:21 -0500 Subject: [PATCH 11/30] Onboard nightscout service directly (#34) --- .../OnboardingUICoordinator.swift | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 2b6e051..5fb76c2 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -13,6 +13,7 @@ import SwiftUI import LoopKit import LoopKitUI import NightscoutServiceKit +import NightscoutServiceKitUI import LoopSupportKitUI import LoopAlgorithm @@ -272,20 +273,16 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private func setupWithNightscout() { LoopKitAnalytics.shared.recordAnalyticsEvent("Onboarding With Nightscout", withProperties: nil, outOfSession: false) - switch onboardingProvider.onboardService(withIdentifier: OnboardingUICoordinator.serviceIdentifier) { - case .failure(let error): - log.debug("Failure to create and setup service with identifier '%{public}@': %{public}@", OnboardingUICoordinator.serviceIdentifier, String(describing: error)) - case .success(let success): - switch success { - case .userInteractionRequired(var setupViewController): - nightscoutOnboardingViewController = setupViewController - setupViewController.serviceOnboardingDelegate = self - setupViewController.completionDelegate = self - show(setupViewController, sender: self) - case .createdAndOnboarded(let service): - self.service = service - checkForAvailableSettingsImport() - } + let result = NightscoutService.setupViewController(colorPalette: colorPalette, pluginHost: onboardingProvider) + switch result { + case .userInteractionRequired(var setupViewController): + nightscoutOnboardingViewController = setupViewController + setupViewController.serviceOnboardingDelegate = self + setupViewController.completionDelegate = self + show(setupViewController, sender: self) + case .createdAndOnboarded(let service): + self.service = service + checkForAvailableSettingsImport() } } From e1db2cf8f1e5b468cbcb3b4a9d13de42251bcd7e Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Fri, 25 Oct 2024 14:39:21 -0500 Subject: [PATCH 12/30] Onboard nightscout service directly (#34) --- .../OnboardingUICoordinator.swift | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 2b6e051..5fb76c2 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -13,6 +13,7 @@ import SwiftUI import LoopKit import LoopKitUI import NightscoutServiceKit +import NightscoutServiceKitUI import LoopSupportKitUI import LoopAlgorithm @@ -272,20 +273,16 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private func setupWithNightscout() { LoopKitAnalytics.shared.recordAnalyticsEvent("Onboarding With Nightscout", withProperties: nil, outOfSession: false) - switch onboardingProvider.onboardService(withIdentifier: OnboardingUICoordinator.serviceIdentifier) { - case .failure(let error): - log.debug("Failure to create and setup service with identifier '%{public}@': %{public}@", OnboardingUICoordinator.serviceIdentifier, String(describing: error)) - case .success(let success): - switch success { - case .userInteractionRequired(var setupViewController): - nightscoutOnboardingViewController = setupViewController - setupViewController.serviceOnboardingDelegate = self - setupViewController.completionDelegate = self - show(setupViewController, sender: self) - case .createdAndOnboarded(let service): - self.service = service - checkForAvailableSettingsImport() - } + let result = NightscoutService.setupViewController(colorPalette: colorPalette, pluginHost: onboardingProvider) + switch result { + case .userInteractionRequired(var setupViewController): + nightscoutOnboardingViewController = setupViewController + setupViewController.serviceOnboardingDelegate = self + setupViewController.completionDelegate = self + show(setupViewController, sender: self) + case .createdAndOnboarded(let service): + self.service = service + checkForAvailableSettingsImport() } } From 79411d793c8c76b3a17ffa72a7382f652d9c3543 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Wed, 30 Oct 2024 16:35:25 -0300 Subject: [PATCH 13/30] [PAL-818] service allowDebugFeatures (#35) --- .../View Controllers/OnboardingUICoordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 5fb76c2..a80eaf5 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -273,7 +273,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private func setupWithNightscout() { LoopKitAnalytics.shared.recordAnalyticsEvent("Onboarding With Nightscout", withProperties: nil, outOfSession: false) - let result = NightscoutService.setupViewController(colorPalette: colorPalette, pluginHost: onboardingProvider) + let result = NightscoutService.setupViewController(colorPalette: colorPalette, pluginHost: onboardingProvider, allowDebugFeatures: onboardingProvider.allowDebugFeatures) switch result { case .userInteractionRequired(var setupViewController): nightscoutOnboardingViewController = setupViewController From 16e294604804d024f3e0de5697ca542bccc10e01 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Wed, 30 Oct 2024 16:35:25 -0300 Subject: [PATCH 14/30] [PAL-818] service allowDebugFeatures (#35) --- .../View Controllers/OnboardingUICoordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 5fb76c2..a80eaf5 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -273,7 +273,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private func setupWithNightscout() { LoopKitAnalytics.shared.recordAnalyticsEvent("Onboarding With Nightscout", withProperties: nil, outOfSession: false) - let result = NightscoutService.setupViewController(colorPalette: colorPalette, pluginHost: onboardingProvider) + let result = NightscoutService.setupViewController(colorPalette: colorPalette, pluginHost: onboardingProvider, allowDebugFeatures: onboardingProvider.allowDebugFeatures) switch result { case .userInteractionRequired(var setupViewController): nightscoutOnboardingViewController = setupViewController From e84a71dfda813a0e7496396a3dd8f3f946b21da7 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Nov 2024 15:48:07 -0800 Subject: [PATCH 15/30] [LOOP-5153] Remove HealthKit dependency from LoopAlgorithm --- .../View Controllers/OnboardingUICoordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index a80eaf5..57a9472 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -302,7 +302,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum dailyItems: [.init(startTime: 0, value: 50)], timeZone: .currentFixed), carbRatioSchedule: CarbRatioSchedule( - unit: .gram(), + unit: .gram, dailyItems: [.init(startTime: 0, value: 15)], timeZone: .currentFixed), basalRateSchedule: BasalRateSchedule( From 40d4c5007b1dc96f7974a93ef016a6f2877b0a3c Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Nov 2024 15:48:07 -0800 Subject: [PATCH 16/30] [LOOP-5153] Remove HealthKit dependency from LoopAlgorithm --- .../View Controllers/OnboardingUICoordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index a80eaf5..57a9472 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -302,7 +302,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum dailyItems: [.init(startTime: 0, value: 50)], timeZone: .currentFixed), carbRatioSchedule: CarbRatioSchedule( - unit: .gram(), + unit: .gram, dailyItems: [.init(startTime: 0, value: 15)], timeZone: .currentFixed), basalRateSchedule: BasalRateSchedule( From 5596b8a3bd725c36b0e82c2978f56934213740d8 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Nov 2024 22:10:50 -0800 Subject: [PATCH 17/30] [LOOP-5153] Remove HealthKit dependency from LoopAlgorithm --- Extensions/HKUnit.swift | 14 -------------- LoopOnboarding.xcodeproj/project.pbxproj | 10 +--------- LoopOnboardingKitUI/LoopOnboardingUI.swift | 1 - .../View Controllers/OnboardingUICoordinator.swift | 1 - .../Views/AppleHealthAuthView.swift | 1 - 5 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 Extensions/HKUnit.swift diff --git a/Extensions/HKUnit.swift b/Extensions/HKUnit.swift deleted file mode 100644 index 4bdb2a0..0000000 --- a/Extensions/HKUnit.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// HKUnit.swift -// LoopOnboarding -// -// Created by Pete Schwamb on 3/3/22. -// - -import HealthKit - -extension HKUnit { - public static let milligramsPerDeciliter: HKUnit = { - return HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci)) - }() -} diff --git a/LoopOnboarding.xcodeproj/project.pbxproj b/LoopOnboarding.xcodeproj/project.pbxproj index 57fa814..74e4c00 100644 --- a/LoopOnboarding.xcodeproj/project.pbxproj +++ b/LoopOnboarding.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -39,9 +39,6 @@ C1C134A327DD38310097B5AD /* NightscoutServiceKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1C134A227DD38310097B5AD /* NightscoutServiceKit.framework */; }; C1C134A427DD38310097B5AD /* NightscoutServiceKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1C134A227DD38310097B5AD /* NightscoutServiceKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C1D0B62E2986C8730098D215 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D0B62D2986C8730098D215 /* TimeZone.swift */; }; - C1D936DB27D166BF00926313 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D936DA27D166BF00926313 /* HKUnit.swift */; }; - C1D936DC27D166BF00926313 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D936DA27D166BF00926313 /* HKUnit.swift */; }; - C1D936DD27D166BF00926313 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D936DA27D166BF00926313 /* HKUnit.swift */; }; C1D936E027D264D600926313 /* AppleHealthAuthView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D936DE27D264D600926313 /* AppleHealthAuthView.swift */; }; /* End PBXBuildFile section */ @@ -145,7 +142,6 @@ C1C1349927DD37C80097B5AD /* NightscoutServiceKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NightscoutServiceKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C1C134A227DD38310097B5AD /* NightscoutServiceKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NightscoutServiceKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C1D0B62D2986C8730098D215 /* TimeZone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; - C1D936DA27D166BF00926313 /* HKUnit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; C1D936DE27D264D600926313 /* AppleHealthAuthView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleHealthAuthView.swift; sourceTree = ""; }; C1E5A6E029C7870100703C90 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; C1E693D229C786E200410918 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; @@ -287,7 +283,6 @@ isa = PBXGroup; children = ( A9CE7D9625BC9BF400C04F9B /* OSLog.swift */, - C1D936DA27D166BF00926313 /* HKUnit.swift */, ); path = Extensions; sourceTree = ""; @@ -495,7 +490,6 @@ files = ( A9CE7D9725BC9BF400C04F9B /* OSLog.swift in Sources */, A9CE7D7525BC9B2B00C04F9B /* LocalizedString.swift in Sources */, - C1D936DB27D166BF00926313 /* HKUnit.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -505,7 +499,6 @@ files = ( C1D0B62E2986C8730098D215 /* TimeZone.swift in Sources */, C1D936E027D264D600926313 /* AppleHealthAuthView.swift in Sources */, - C1D936DC27D166BF00926313 /* HKUnit.swift in Sources */, C16121EB27C457C400BCDE2A /* ImportSettingsView.swift in Sources */, A9B3CE8125BCBD85002D9E92 /* Image.swift in Sources */, A9B3CE8F25BCBE7D002D9E92 /* Bundle.swift in Sources */, @@ -524,7 +517,6 @@ files = ( A9CE7FF325BCAC1800C04F9B /* LoopOnboardingPlugin.swift in Sources */, A9CE7D9925BC9BF400C04F9B /* OSLog.swift in Sources */, - C1D936DD27D166BF00926313 /* HKUnit.swift in Sources */, A9CE7D7725BC9B2B00C04F9B /* LocalizedString.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index fc89fcf..247a91a 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -7,7 +7,6 @@ // import SwiftUI -import HealthKit import LoopKit import LoopKitUI import LoopOnboardingKit diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 57a9472..135a091 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -8,7 +8,6 @@ import os.log import Foundation -import HealthKit import SwiftUI import LoopKit import LoopKitUI diff --git a/LoopOnboardingKitUI/Views/AppleHealthAuthView.swift b/LoopOnboardingKitUI/Views/AppleHealthAuthView.swift index 2d44be5..8e9a195 100644 --- a/LoopOnboardingKitUI/Views/AppleHealthAuthView.swift +++ b/LoopOnboardingKitUI/Views/AppleHealthAuthView.swift @@ -6,7 +6,6 @@ // import SwiftUI -import HealthKit import LoopKitUI struct AppleHealthAuthView: View { From 2b8e805343732ca9875d757d9a719cf17cec8a66 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Nov 2024 22:10:50 -0800 Subject: [PATCH 18/30] [LOOP-5153] Remove HealthKit dependency from LoopAlgorithm --- Extensions/HKUnit.swift | 14 -------------- LoopOnboarding.xcodeproj/project.pbxproj | 10 +--------- LoopOnboardingKitUI/LoopOnboardingUI.swift | 1 - .../View Controllers/OnboardingUICoordinator.swift | 1 - .../Views/AppleHealthAuthView.swift | 1 - 5 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 Extensions/HKUnit.swift diff --git a/Extensions/HKUnit.swift b/Extensions/HKUnit.swift deleted file mode 100644 index 4bdb2a0..0000000 --- a/Extensions/HKUnit.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// HKUnit.swift -// LoopOnboarding -// -// Created by Pete Schwamb on 3/3/22. -// - -import HealthKit - -extension HKUnit { - public static let milligramsPerDeciliter: HKUnit = { - return HKUnit.gramUnit(with: .milli).unitDivided(by: .literUnit(with: .deci)) - }() -} diff --git a/LoopOnboarding.xcodeproj/project.pbxproj b/LoopOnboarding.xcodeproj/project.pbxproj index 57fa814..74e4c00 100644 --- a/LoopOnboarding.xcodeproj/project.pbxproj +++ b/LoopOnboarding.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ @@ -39,9 +39,6 @@ C1C134A327DD38310097B5AD /* NightscoutServiceKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1C134A227DD38310097B5AD /* NightscoutServiceKit.framework */; }; C1C134A427DD38310097B5AD /* NightscoutServiceKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C1C134A227DD38310097B5AD /* NightscoutServiceKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C1D0B62E2986C8730098D215 /* TimeZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D0B62D2986C8730098D215 /* TimeZone.swift */; }; - C1D936DB27D166BF00926313 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D936DA27D166BF00926313 /* HKUnit.swift */; }; - C1D936DC27D166BF00926313 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D936DA27D166BF00926313 /* HKUnit.swift */; }; - C1D936DD27D166BF00926313 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D936DA27D166BF00926313 /* HKUnit.swift */; }; C1D936E027D264D600926313 /* AppleHealthAuthView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1D936DE27D264D600926313 /* AppleHealthAuthView.swift */; }; /* End PBXBuildFile section */ @@ -145,7 +142,6 @@ C1C1349927DD37C80097B5AD /* NightscoutServiceKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NightscoutServiceKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C1C134A227DD38310097B5AD /* NightscoutServiceKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NightscoutServiceKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C1D0B62D2986C8730098D215 /* TimeZone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeZone.swift; sourceTree = ""; }; - C1D936DA27D166BF00926313 /* HKUnit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; C1D936DE27D264D600926313 /* AppleHealthAuthView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppleHealthAuthView.swift; sourceTree = ""; }; C1E5A6E029C7870100703C90 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; C1E693D229C786E200410918 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; @@ -287,7 +283,6 @@ isa = PBXGroup; children = ( A9CE7D9625BC9BF400C04F9B /* OSLog.swift */, - C1D936DA27D166BF00926313 /* HKUnit.swift */, ); path = Extensions; sourceTree = ""; @@ -495,7 +490,6 @@ files = ( A9CE7D9725BC9BF400C04F9B /* OSLog.swift in Sources */, A9CE7D7525BC9B2B00C04F9B /* LocalizedString.swift in Sources */, - C1D936DB27D166BF00926313 /* HKUnit.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -505,7 +499,6 @@ files = ( C1D0B62E2986C8730098D215 /* TimeZone.swift in Sources */, C1D936E027D264D600926313 /* AppleHealthAuthView.swift in Sources */, - C1D936DC27D166BF00926313 /* HKUnit.swift in Sources */, C16121EB27C457C400BCDE2A /* ImportSettingsView.swift in Sources */, A9B3CE8125BCBD85002D9E92 /* Image.swift in Sources */, A9B3CE8F25BCBE7D002D9E92 /* Bundle.swift in Sources */, @@ -524,7 +517,6 @@ files = ( A9CE7FF325BCAC1800C04F9B /* LoopOnboardingPlugin.swift in Sources */, A9CE7D9925BC9BF400C04F9B /* OSLog.swift in Sources */, - C1D936DD27D166BF00926313 /* HKUnit.swift in Sources */, A9CE7D7725BC9B2B00C04F9B /* LocalizedString.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index fc89fcf..247a91a 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -7,7 +7,6 @@ // import SwiftUI -import HealthKit import LoopKit import LoopKitUI import LoopOnboardingKit diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 57a9472..135a091 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -8,7 +8,6 @@ import os.log import Foundation -import HealthKit import SwiftUI import LoopKit import LoopKitUI diff --git a/LoopOnboardingKitUI/Views/AppleHealthAuthView.swift b/LoopOnboardingKitUI/Views/AppleHealthAuthView.swift index 2d44be5..8e9a195 100644 --- a/LoopOnboardingKitUI/Views/AppleHealthAuthView.swift +++ b/LoopOnboardingKitUI/Views/AppleHealthAuthView.swift @@ -6,7 +6,6 @@ // import SwiftUI -import HealthKit import LoopKitUI struct AppleHealthAuthView: View { From 7b8703a70729051ad09d5d2507309fd36de44de2 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Fri, 6 Dec 2024 14:34:12 -0800 Subject: [PATCH 19/30] Bump to iOS 17 --- LoopOnboarding.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LoopOnboarding.xcodeproj/project.pbxproj b/LoopOnboarding.xcodeproj/project.pbxproj index 74e4c00..501aac9 100644 --- a/LoopOnboarding.xcodeproj/project.pbxproj +++ b/LoopOnboarding.xcodeproj/project.pbxproj @@ -676,7 +676,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_PARAMETER = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, CFLocalizedString, @@ -780,7 +780,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_PARAMETER = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, CFLocalizedString, From ef877a696e6e397537d1e5caac10fdc03e99bbe3 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Fri, 6 Dec 2024 14:34:12 -0800 Subject: [PATCH 20/30] Bump to iOS 17 --- LoopOnboarding.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LoopOnboarding.xcodeproj/project.pbxproj b/LoopOnboarding.xcodeproj/project.pbxproj index 74e4c00..501aac9 100644 --- a/LoopOnboarding.xcodeproj/project.pbxproj +++ b/LoopOnboarding.xcodeproj/project.pbxproj @@ -676,7 +676,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_PARAMETER = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, CFLocalizedString, @@ -780,7 +780,7 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_PARAMETER = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, CFLocalizedString, From 9fb810884081d979fede02a465d1801d14eb14d1 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Thu, 29 May 2025 12:54:16 -0500 Subject: [PATCH 21/30] Remove adult/child insulin model selection (#38) --- LoopOnboardingKitUI/LoopOnboardingUI.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index 247a91a..6c61afc 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -53,7 +53,7 @@ public final class LoopOnboardingUI: OnboardingUI { ] } - public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette, adultChildInsulinModelSelectionEnabled: Bool) -> (UIViewController & OnboardingViewController) { + public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette) -> (UIViewController & OnboardingViewController) { return OnboardingUICoordinator(onboarding: self, onboardingProvider: onboardingProvider, initialTherapySettings: onboardingProvider.onboardingTherapySettings, displayGlucosePreference: displayGlucosePreference, colorPalette: colorPalette) } From d2d87111c6ea58912c741e5d5e34935a57b45c7e Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Thu, 29 May 2025 12:54:16 -0500 Subject: [PATCH 22/30] Remove adult/child insulin model selection (#38) --- LoopOnboardingKitUI/LoopOnboardingUI.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index 247a91a..6c61afc 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -53,7 +53,7 @@ public final class LoopOnboardingUI: OnboardingUI { ] } - public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette, adultChildInsulinModelSelectionEnabled: Bool) -> (UIViewController & OnboardingViewController) { + public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette) -> (UIViewController & OnboardingViewController) { return OnboardingUICoordinator(onboarding: self, onboardingProvider: onboardingProvider, initialTherapySettings: onboardingProvider.onboardingTherapySettings, displayGlucosePreference: displayGlucosePreference, colorPalette: colorPalette) } From f824b84c6070e94cf30b232b3a8cc4b954195d46 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Aug 2025 10:54:47 -0700 Subject: [PATCH 23/30] [LOOP-5405] Remove Legacy Workout Preset --- .../View Controllers/OnboardingUICoordinator.swift | 3 --- 1 file changed, 3 deletions(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 135a091..8d35fb3 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -461,8 +461,5 @@ extension TherapySettings { { correctionRangeOverrides?.ranges[.preMeal] = nil } - - // workout mode obviated in DIY by overrides - correctionRangeOverrides?.ranges[.workout] = nil } } From b42e2d8e68e8c359fa43eea5bcd5b3f7a847ccff Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Aug 2025 10:54:47 -0700 Subject: [PATCH 24/30] [LOOP-5405] Remove Legacy Workout Preset --- .../View Controllers/OnboardingUICoordinator.swift | 3 --- 1 file changed, 3 deletions(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 135a091..8d35fb3 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -461,8 +461,5 @@ extension TherapySettings { { correctionRangeOverrides?.ranges[.preMeal] = nil } - - // workout mode obviated in DIY by overrides - correctionRangeOverrides?.ranges[.workout] = nil } } From 817ac27c580ad9a966226625bf9eeeb14a15e8fe Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Aug 2025 11:56:16 -0700 Subject: [PATCH 25/30] [LOOP-5405] Activity Presets Core --- .../View Controllers/OnboardingUICoordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 8d35fb3..e1c6676 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -341,7 +341,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private func constructTherapySettingsViewModel(therapySettings: TherapySettings) -> TherapySettingsViewModel? { - return TherapySettingsViewModel(therapySettings: therapySettings, pumpSupportedIncrements: nil, sensitivityOverridesEnabled: true, prescription: nil, delegate: self) + return TherapySettingsViewModel(therapySettings: therapySettings, pumpSupportedIncrements: nil, prescription: nil, delegate: self) } } From adf98bd657f4143b05d9dcd43ce42d0a66d23e46 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Aug 2025 11:56:16 -0700 Subject: [PATCH 26/30] [LOOP-5405] Activity Presets Core --- .../View Controllers/OnboardingUICoordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 8d35fb3..e1c6676 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -341,7 +341,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private func constructTherapySettingsViewModel(therapySettings: TherapySettings) -> TherapySettingsViewModel? { - return TherapySettingsViewModel(therapySettings: therapySettings, pumpSupportedIncrements: nil, sensitivityOverridesEnabled: true, prescription: nil, delegate: self) + return TherapySettingsViewModel(therapySettings: therapySettings, pumpSupportedIncrements: nil, prescription: nil, delegate: self) } } From 88b6a231f56ffb7a8e0aa98e9cddd6ca7be46b3d Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Fri, 23 Jan 2026 10:54:26 -0800 Subject: [PATCH 27/30] [LOOP-5707] Use New Presets UI for DIY Loop Onboarding --- .../View Controllers/OnboardingUICoordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index e1c6676..5180e28 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -185,7 +185,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum let view = CorrectionRangeOverrideInformationView(preset: .preMeal, onExit: { [weak self] in self?.stepFinished() }) return hostingController(rootView: view) case .correctionRangePreMealOverrideEditor: - let view = CorrectionRangeOverridesEditor(mode: .acceptanceFlow, therapySettingsViewModel: therapySettingsViewModel!, preset: .preMeal) + let view = CorrectionRangeOverridesEditor(therapySettingsViewModel: therapySettingsViewModel!, preset: .preMeal) return hostingController(rootView: view) case .basalRatesInfo: let view = BasalRatesInformationView(onExit: { [weak self] in self?.stepFinished() }) From 36a0a55518be6dc8cf9858dad8cb205deb666610 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Fri, 23 Jan 2026 10:54:26 -0800 Subject: [PATCH 28/30] [LOOP-5707] Use New Presets UI for DIY Loop Onboarding --- .../View Controllers/OnboardingUICoordinator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index e1c6676..5180e28 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -185,7 +185,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum let view = CorrectionRangeOverrideInformationView(preset: .preMeal, onExit: { [weak self] in self?.stepFinished() }) return hostingController(rootView: view) case .correctionRangePreMealOverrideEditor: - let view = CorrectionRangeOverridesEditor(mode: .acceptanceFlow, therapySettingsViewModel: therapySettingsViewModel!, preset: .preMeal) + let view = CorrectionRangeOverridesEditor(therapySettingsViewModel: therapySettingsViewModel!, preset: .preMeal) return hostingController(rootView: view) case .basalRatesInfo: let view = BasalRatesInformationView(onExit: { [weak self] in self?.stepFinished() }) From 1eb8a82f08e762bf8edc17b5f923b94aa0dae7aa Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Tue, 3 Mar 2026 16:09:03 -0800 Subject: [PATCH 29/30] Add missing loopDataManager.dosingStrategySelectionEnabled to OnboardingManager --- LoopOnboardingKitUI/LoopOnboardingUI.swift | 4 ++-- .../View Controllers/OnboardingUICoordinator.swift | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index 6c61afc..031e4df 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -53,8 +53,8 @@ public final class LoopOnboardingUI: OnboardingUI { ] } - public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette) -> (UIViewController & OnboardingViewController) { - return OnboardingUICoordinator(onboarding: self, onboardingProvider: onboardingProvider, initialTherapySettings: onboardingProvider.onboardingTherapySettings, displayGlucosePreference: displayGlucosePreference, colorPalette: colorPalette) + public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette, dosingStrategySelectionEnabled: Bool) -> (UIViewController & OnboardingViewController) { + return OnboardingUICoordinator(onboarding: self, onboardingProvider: onboardingProvider, initialTherapySettings: onboardingProvider.onboardingTherapySettings, displayGlucosePreference: displayGlucosePreference, colorPalette: colorPalette, dosingStrategySelectionEnabled: dosingStrategySelectionEnabled) } private func notifyDidUpdateState() { diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 5180e28..1ddc82b 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -67,6 +67,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private let displayGlucosePreference: DisplayGlucosePreference private let colorPalette: LoopUIColorPalette + private let dosingStrategySelectionEnabled: Bool private var screenStack = [OnboardingScreen]() private var currentScreen: OnboardingScreen { return screenStack.last! } @@ -79,12 +80,13 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private static let serviceIdentifier = "NightscoutService" - init(onboarding: LoopOnboardingUI, onboardingProvider: OnboardingProvider, initialTherapySettings: TherapySettings, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette) { + init(onboarding: LoopOnboardingUI, onboardingProvider: OnboardingProvider, initialTherapySettings: TherapySettings, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette, dosingStrategySelectionEnabled: Bool) { self.onboarding = onboarding self.onboardingProvider = onboardingProvider self.initialTherapySettings = initialTherapySettings self.displayGlucosePreference = displayGlucosePreference self.colorPalette = colorPalette + self.dosingStrategySelectionEnabled = dosingStrategySelectionEnabled self.service = onboardingProvider.activeServices.first(where: { $0.pluginIdentifier == OnboardingUICoordinator.serviceIdentifier }) super.init(navigationBarClass: UINavigationBar.self, toolbarClass: UIToolbar.self) @@ -230,6 +232,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum let rootView = rootView .environmentObject(displayGlucosePreference) .environment(\.appName, Bundle.main.bundleDisplayName) + .environment(\.dosingStrategySelectionEnabled, dosingStrategySelectionEnabled) let hostingController = DismissibleHostingController(content: rootView, colorPalette: colorPalette) return hostingController } From 29730759bf93fb7257a29b9ee57996882f51ed2a Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Tue, 3 Mar 2026 16:09:03 -0800 Subject: [PATCH 30/30] Add missing loopDataManager.dosingStrategySelectionEnabled to OnboardingManager --- LoopOnboardingKitUI/LoopOnboardingUI.swift | 4 ++-- .../View Controllers/OnboardingUICoordinator.swift | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/LoopOnboardingKitUI/LoopOnboardingUI.swift b/LoopOnboardingKitUI/LoopOnboardingUI.swift index 6c61afc..031e4df 100644 --- a/LoopOnboardingKitUI/LoopOnboardingUI.swift +++ b/LoopOnboardingKitUI/LoopOnboardingUI.swift @@ -53,8 +53,8 @@ public final class LoopOnboardingUI: OnboardingUI { ] } - public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette) -> (UIViewController & OnboardingViewController) { - return OnboardingUICoordinator(onboarding: self, onboardingProvider: onboardingProvider, initialTherapySettings: onboardingProvider.onboardingTherapySettings, displayGlucosePreference: displayGlucosePreference, colorPalette: colorPalette) + public func onboardingViewController(onboardingProvider: OnboardingProvider, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette, dosingStrategySelectionEnabled: Bool) -> (UIViewController & OnboardingViewController) { + return OnboardingUICoordinator(onboarding: self, onboardingProvider: onboardingProvider, initialTherapySettings: onboardingProvider.onboardingTherapySettings, displayGlucosePreference: displayGlucosePreference, colorPalette: colorPalette, dosingStrategySelectionEnabled: dosingStrategySelectionEnabled) } private func notifyDidUpdateState() { diff --git a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift index 5180e28..1ddc82b 100644 --- a/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift +++ b/LoopOnboardingKitUI/View Controllers/OnboardingUICoordinator.swift @@ -67,6 +67,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private let displayGlucosePreference: DisplayGlucosePreference private let colorPalette: LoopUIColorPalette + private let dosingStrategySelectionEnabled: Bool private var screenStack = [OnboardingScreen]() private var currentScreen: OnboardingScreen { return screenStack.last! } @@ -79,12 +80,13 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum private static let serviceIdentifier = "NightscoutService" - init(onboarding: LoopOnboardingUI, onboardingProvider: OnboardingProvider, initialTherapySettings: TherapySettings, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette) { + init(onboarding: LoopOnboardingUI, onboardingProvider: OnboardingProvider, initialTherapySettings: TherapySettings, displayGlucosePreference: DisplayGlucosePreference, colorPalette: LoopUIColorPalette, dosingStrategySelectionEnabled: Bool) { self.onboarding = onboarding self.onboardingProvider = onboardingProvider self.initialTherapySettings = initialTherapySettings self.displayGlucosePreference = displayGlucosePreference self.colorPalette = colorPalette + self.dosingStrategySelectionEnabled = dosingStrategySelectionEnabled self.service = onboardingProvider.activeServices.first(where: { $0.pluginIdentifier == OnboardingUICoordinator.serviceIdentifier }) super.init(navigationBarClass: UINavigationBar.self, toolbarClass: UIToolbar.self) @@ -230,6 +232,7 @@ class OnboardingUICoordinator: UINavigationController, CGMManagerOnboarding, Pum let rootView = rootView .environmentObject(displayGlucosePreference) .environment(\.appName, Bundle.main.bundleDisplayName) + .environment(\.dosingStrategySelectionEnabled, dosingStrategySelectionEnabled) let hostingController = DismissibleHostingController(content: rootView, colorPalette: colorPalette) return hostingController }