From cb69c0157aa3b36febf7136f886eb2710ab613b7 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Mon, 25 Sep 2023 15:24:57 -0300 Subject: [PATCH 01/16] [COASTAL-1291] plugin identifier is no longer class property (#4) --- G7SensorKit/G7CGMManager/G7CGMManager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/G7SensorKit/G7CGMManager/G7CGMManager.swift b/G7SensorKit/G7CGMManager/G7CGMManager.swift index 1a034e6..c670c11 100644 --- a/G7SensorKit/G7CGMManager/G7CGMManager.swift +++ b/G7SensorKit/G7CGMManager/G7CGMManager.swift @@ -227,7 +227,7 @@ public class G7CGMManager: CGMManager { public func getSoundBaseURL() -> URL? { return nil } public func getSounds() -> [Alert.Sound] { return [] } - public static let pluginIdentifier: String = "G7CGMManager" + public let pluginIdentifier: String = "G7CGMManager" public let localizedTitle = LocalizedString("Dexcom G7", comment: "CGM display title") From 64671153fcc6f414542ecd3c3681c4a02ff078c4 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Mon, 25 Sep 2023 15:24:57 -0300 Subject: [PATCH 02/16] [COASTAL-1291] plugin identifier is no longer class property (#4) --- G7SensorKit/G7CGMManager/G7CGMManager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/G7SensorKit/G7CGMManager/G7CGMManager.swift b/G7SensorKit/G7CGMManager/G7CGMManager.swift index 1a034e6..c670c11 100644 --- a/G7SensorKit/G7CGMManager/G7CGMManager.swift +++ b/G7SensorKit/G7CGMManager/G7CGMManager.swift @@ -227,7 +227,7 @@ public class G7CGMManager: CGMManager { public func getSoundBaseURL() -> URL? { return nil } public func getSounds() -> [Alert.Sound] { return [] } - public static let pluginIdentifier: String = "G7CGMManager" + public let pluginIdentifier: String = "G7CGMManager" public let localizedTitle = LocalizedString("Dexcom G7", comment: "CGM display title") From 0c1bd09038880470bfcf944b12756c605309f5a3 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Fri, 1 Mar 2024 15:01:39 -0600 Subject: [PATCH 03/16] Types moved to LoopAlgorithm --- G7SensorKit/G7CGMManager/G7BackfillMessage.swift | 1 + G7SensorKit/Messages/G7GlucoseMessage.swift | 1 + 2 files changed, 2 insertions(+) diff --git a/G7SensorKit/G7CGMManager/G7BackfillMessage.swift b/G7SensorKit/G7CGMManager/G7BackfillMessage.swift index 2658cb4..caef4c6 100644 --- a/G7SensorKit/G7CGMManager/G7BackfillMessage.swift +++ b/G7SensorKit/G7CGMManager/G7BackfillMessage.swift @@ -8,6 +8,7 @@ import Foundation import LoopKit +import LoopAlgorithm public struct G7BackfillMessage: Equatable { diff --git a/G7SensorKit/Messages/G7GlucoseMessage.swift b/G7SensorKit/Messages/G7GlucoseMessage.swift index e0594a3..93cbd10 100644 --- a/G7SensorKit/Messages/G7GlucoseMessage.swift +++ b/G7SensorKit/Messages/G7GlucoseMessage.swift @@ -8,6 +8,7 @@ import Foundation import LoopKit +import LoopAlgorithm public struct G7GlucoseMessage: SensorMessage, Equatable { //public let status: UInt8 From 616773216ed67fc74105af396bdbdfdce2f8969c Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Fri, 1 Mar 2024 15:01:39 -0600 Subject: [PATCH 04/16] Types moved to LoopAlgorithm --- G7SensorKit/G7CGMManager/G7BackfillMessage.swift | 1 + G7SensorKit/Messages/G7GlucoseMessage.swift | 1 + 2 files changed, 2 insertions(+) diff --git a/G7SensorKit/G7CGMManager/G7BackfillMessage.swift b/G7SensorKit/G7CGMManager/G7BackfillMessage.swift index 2658cb4..caef4c6 100644 --- a/G7SensorKit/G7CGMManager/G7BackfillMessage.swift +++ b/G7SensorKit/G7CGMManager/G7BackfillMessage.swift @@ -8,6 +8,7 @@ import Foundation import LoopKit +import LoopAlgorithm public struct G7BackfillMessage: Equatable { diff --git a/G7SensorKit/Messages/G7GlucoseMessage.swift b/G7SensorKit/Messages/G7GlucoseMessage.swift index e0594a3..93cbd10 100644 --- a/G7SensorKit/Messages/G7GlucoseMessage.swift +++ b/G7SensorKit/Messages/G7GlucoseMessage.swift @@ -8,6 +8,7 @@ import Foundation import LoopKit +import LoopAlgorithm public struct G7GlucoseMessage: SensorMessage, Equatable { //public let status: UInt8 From 3452e9dd2ac10bf87d3c96b28547f15d6c0432b6 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Nov 2024 15:47:50 -0800 Subject: [PATCH 05/16] [LOOP-5153] Remove HealthKit dependency from LoopAlgorithm --- G7SensorKit/G7CGMManager/G7CGMManager.swift | 23 +++++++++++---------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/G7SensorKit/G7CGMManager/G7CGMManager.swift b/G7SensorKit/G7CGMManager/G7CGMManager.swift index 1d6143d..4f7d816 100644 --- a/G7SensorKit/G7CGMManager/G7CGMManager.swift +++ b/G7SensorKit/G7CGMManager/G7CGMManager.swift @@ -7,9 +7,10 @@ // import Foundation +import HealthKit +import LoopAlgorithm import LoopKit import os.log -import HealthKit @@ -359,8 +360,8 @@ extension G7CGMManager: G7SensorDelegate { return } - let unit = HKUnit.milligramsPerDeciliter - let quantity = HKQuantity(unit: unit, doubleValue: Double(min(max(glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) + let unit = LoopUnit.milligramsPerDeciliter + let quantity = LoopQuantity(unit: unit, doubleValue: Double(min(max(glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) updateDelegate(with: .newData([ NewGlucoseSample( @@ -395,7 +396,7 @@ extension G7CGMManager: G7SensorDelegate { return } - let unit = HKUnit.milligramsPerDeciliter + let unit = LoopUnit.milligramsPerDeciliter let samples = backfill.compactMap { entry -> NewGlucoseSample? in guard let glucose = entry.glucose else { @@ -407,7 +408,7 @@ extension G7CGMManager: G7SensorDelegate { return nil } - let quantity = HKQuantity(unit: unit, doubleValue: Double(min(max(glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) + let quantity = LoopQuantity(unit: unit, doubleValue: Double(min(max(glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) return NewGlucoseSample( date: activationDate.addingTimeInterval(TimeInterval(entry.timestamp)), @@ -433,11 +434,11 @@ extension G7CGMManager: G7SensorDelegate { } extension G7BackfillMessage { - public var trendRate: HKQuantity? { + public var trendRate: LoopQuantity? { guard let trend = trend else { return nil } - return HKQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trend) + return LoopQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trend) } } @@ -446,18 +447,18 @@ extension G7GlucoseMessage: GlucoseDisplayable { return hasReliableGlucose } - public var trendRate: HKQuantity? { + public var trendRate: LoopQuantity? { guard let trend = trend else { return nil } - return HKQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trend) + return LoopQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trend) } - public var glucoseQuantity: HKQuantity? { + public var glucoseQuantity: LoopQuantity? { guard let glucose = glucose else { return nil } - return HKQuantity(unit: .milligramsPerDeciliter, doubleValue: Double(glucose)) + return LoopQuantity(unit: .milligramsPerDeciliter, doubleValue: Double(glucose)) } public var isLocal: Bool { From 1660ad3feac195745bc1787feb2fb5ca126123af Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Nov 2024 15:47:50 -0800 Subject: [PATCH 06/16] [LOOP-5153] Remove HealthKit dependency from LoopAlgorithm --- G7SensorKit/G7CGMManager/G7CGMManager.swift | 23 +++++++++++---------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/G7SensorKit/G7CGMManager/G7CGMManager.swift b/G7SensorKit/G7CGMManager/G7CGMManager.swift index 1d6143d..4f7d816 100644 --- a/G7SensorKit/G7CGMManager/G7CGMManager.swift +++ b/G7SensorKit/G7CGMManager/G7CGMManager.swift @@ -7,9 +7,10 @@ // import Foundation +import HealthKit +import LoopAlgorithm import LoopKit import os.log -import HealthKit @@ -359,8 +360,8 @@ extension G7CGMManager: G7SensorDelegate { return } - let unit = HKUnit.milligramsPerDeciliter - let quantity = HKQuantity(unit: unit, doubleValue: Double(min(max(glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) + let unit = LoopUnit.milligramsPerDeciliter + let quantity = LoopQuantity(unit: unit, doubleValue: Double(min(max(glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) updateDelegate(with: .newData([ NewGlucoseSample( @@ -395,7 +396,7 @@ extension G7CGMManager: G7SensorDelegate { return } - let unit = HKUnit.milligramsPerDeciliter + let unit = LoopUnit.milligramsPerDeciliter let samples = backfill.compactMap { entry -> NewGlucoseSample? in guard let glucose = entry.glucose else { @@ -407,7 +408,7 @@ extension G7CGMManager: G7SensorDelegate { return nil } - let quantity = HKQuantity(unit: unit, doubleValue: Double(min(max(glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) + let quantity = LoopQuantity(unit: unit, doubleValue: Double(min(max(glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) return NewGlucoseSample( date: activationDate.addingTimeInterval(TimeInterval(entry.timestamp)), @@ -433,11 +434,11 @@ extension G7CGMManager: G7SensorDelegate { } extension G7BackfillMessage { - public var trendRate: HKQuantity? { + public var trendRate: LoopQuantity? { guard let trend = trend else { return nil } - return HKQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trend) + return LoopQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trend) } } @@ -446,18 +447,18 @@ extension G7GlucoseMessage: GlucoseDisplayable { return hasReliableGlucose } - public var trendRate: HKQuantity? { + public var trendRate: LoopQuantity? { guard let trend = trend else { return nil } - return HKQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trend) + return LoopQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trend) } - public var glucoseQuantity: HKQuantity? { + public var glucoseQuantity: LoopQuantity? { guard let glucose = glucose else { return nil } - return HKQuantity(unit: .milligramsPerDeciliter, doubleValue: Double(glucose)) + return LoopQuantity(unit: .milligramsPerDeciliter, doubleValue: Double(glucose)) } public var isLocal: Bool { From a210253ac39cd7728d990c316b375679d50d51c2 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Nov 2024 22:06:14 -0800 Subject: [PATCH 07/16] [LOOP-5153] Remove HealthKit dependency from LoopAlgorithm --- Common/HKUnit.swift | 20 ------------------- G7SensorKit.xcodeproj/project.pbxproj | 6 ------ G7SensorKit/G7CGMManager/G7Sensor.swift | 1 - G7SensorKitUI/Views/G7SettingsViewModel.swift | 1 - 4 files changed, 28 deletions(-) delete mode 100644 Common/HKUnit.swift diff --git a/Common/HKUnit.swift b/Common/HKUnit.swift deleted file mode 100644 index 69e6f9a..0000000 --- a/Common/HKUnit.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// HKUnit.swift -// xDripG5 -// -// Created by Nate Racklyeft on 8/6/16. -// Copyright © 2016 Nathan Racklyeft. All rights reserved. -// - -import HealthKit - - -extension HKUnit { - static let milligramsPerDeciliter: HKUnit = { - return HKUnit.gramUnit(with: .milli).unitDivided(by: HKUnit.literUnit(with: .deci)) - }() - - static let milligramsPerDeciliterPerMinute: HKUnit = { - return HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()) - }() -} diff --git a/G7SensorKit.xcodeproj/project.pbxproj b/G7SensorKit.xcodeproj/project.pbxproj index c6c8c6a..f2f251f 100644 --- a/G7SensorKit.xcodeproj/project.pbxproj +++ b/G7SensorKit.xcodeproj/project.pbxproj @@ -9,7 +9,6 @@ /* Begin PBXBuildFile section */ C109F14A291ECCE2008EA5B6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C109F149291ECCE2008EA5B6 /* Assets.xcassets */; }; C109F14C291ED66F008EA5B6 /* G7GlucoseMessageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C109F14B291ED66F008EA5B6 /* G7GlucoseMessageTests.swift */; }; - C139829829295D7D0047DB5F /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514A291EB6F000555EB5 /* HKUnit.swift */; }; C1409A07291EC21C006BE8D0 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5126291EAF2F00555EB5 /* OSLog.swift */; }; C1409A09291EC22F006BE8D0 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1409A08291EC22F006BE8D0 /* OSLog.swift */; }; C1409A0B291EC258006BE8D0 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1409A0A291EC258006BE8D0 /* OSLog.swift */; }; @@ -48,7 +47,6 @@ C17F5145291EB45900555EB5 /* CBPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5144291EB45900555EB5 /* CBPeripheral.swift */; }; C17F5147291EB57700555EB5 /* SensorMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5146291EB57700555EB5 /* SensorMessage.swift */; }; C17F5149291EB6B600555EB5 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5148291EB6B600555EB5 /* LocalizedString.swift */; }; - C17F514B291EB6F000555EB5 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514A291EB6F000555EB5 /* HKUnit.swift */; }; C17F514D291EB79E00555EB5 /* AlgorithmError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514C291EB79E00555EB5 /* AlgorithmError.swift */; }; C17F514F291EB87600555EB5 /* G7SensorKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C17F50C6291EAC3800555EB5 /* G7SensorKit.framework */; }; C17F5156291EBD8600555EB5 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5155291EBD8600555EB5 /* Image.swift */; }; @@ -166,7 +164,6 @@ C17F5144291EB45900555EB5 /* CBPeripheral.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CBPeripheral.swift; sourceTree = ""; }; C17F5146291EB57700555EB5 /* SensorMessage.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; path = SensorMessage.swift; sourceTree = ""; }; C17F5148291EB6B600555EB5 /* LocalizedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; - C17F514A291EB6F000555EB5 /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; C17F514C291EB79E00555EB5 /* AlgorithmError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlgorithmError.swift; sourceTree = ""; }; C17F5155291EBD8600555EB5 /* Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Image.swift; sourceTree = ""; }; C17F5158291EBE7500555EB5 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -346,7 +343,6 @@ C17F5137291EB0A800555EB5 /* Data.swift */, C17F5148291EB6B600555EB5 /* LocalizedString.swift */, C17F513B291EB13D00555EB5 /* Locked.swift */, - C17F514A291EB6F000555EB5 /* HKUnit.swift */, C17F513F291EB27D00555EB5 /* TimeInterval.swift */, ); path = Common; @@ -610,7 +606,6 @@ C17F5135291EB06A00555EB5 /* AlgorithmState.swift in Sources */, C17F50F1291EAC6500555EB5 /* G7BluetoothManager.swift in Sources */, C17F5138291EB0A800555EB5 /* Data.swift in Sources */, - C17F514B291EB6F000555EB5 /* HKUnit.swift in Sources */, C17F50EC291EAC6500555EB5 /* G7LastReading.swift in Sources */, C17F513C291EB13D00555EB5 /* Locked.swift in Sources */, C17F513E291EB1A500555EB5 /* BluetoothServices.swift in Sources */, @@ -639,7 +634,6 @@ C17F5157291EBD9900555EB5 /* TimeInterval.swift in Sources */, C19C9F4E29C91C4C00A6D3D0 /* LocalizedString.swift in Sources */, C17F5156291EBD8600555EB5 /* Image.swift in Sources */, - C139829829295D7D0047DB5F /* HKUnit.swift in Sources */, C1409A07291EC21C006BE8D0 /* OSLog.swift in Sources */, C17F510A291EAC9D00555EB5 /* G7UICoordinator.swift in Sources */, C17F5109291EAC9D00555EB5 /* G7CGMManager+UI.swift in Sources */, diff --git a/G7SensorKit/G7CGMManager/G7Sensor.swift b/G7SensorKit/G7CGMManager/G7Sensor.swift index d5c0b46..96bbebc 100644 --- a/G7SensorKit/G7CGMManager/G7Sensor.swift +++ b/G7SensorKit/G7CGMManager/G7Sensor.swift @@ -8,7 +8,6 @@ import Foundation import CoreBluetooth -import HealthKit import os.log diff --git a/G7SensorKitUI/Views/G7SettingsViewModel.swift b/G7SensorKitUI/Views/G7SettingsViewModel.swift index 93bff10..dd5370a 100644 --- a/G7SensorKitUI/Views/G7SettingsViewModel.swift +++ b/G7SensorKitUI/Views/G7SettingsViewModel.swift @@ -10,7 +10,6 @@ import Foundation import G7SensorKit import LoopKit import LoopKitUI -import HealthKit public enum ColorStyle { case glucose, warning, critical, normal, dimmed From f7c4c6ee2d4a832ef61010f5043fefdff314f359 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Thu, 21 Nov 2024 22:06:14 -0800 Subject: [PATCH 08/16] [LOOP-5153] Remove HealthKit dependency from LoopAlgorithm --- Common/HKUnit.swift | 20 ------------------- G7SensorKit.xcodeproj/project.pbxproj | 6 ------ G7SensorKit/G7CGMManager/G7Sensor.swift | 1 - G7SensorKitUI/Views/G7SettingsViewModel.swift | 1 - 4 files changed, 28 deletions(-) delete mode 100644 Common/HKUnit.swift diff --git a/Common/HKUnit.swift b/Common/HKUnit.swift deleted file mode 100644 index 69e6f9a..0000000 --- a/Common/HKUnit.swift +++ /dev/null @@ -1,20 +0,0 @@ -// -// HKUnit.swift -// xDripG5 -// -// Created by Nate Racklyeft on 8/6/16. -// Copyright © 2016 Nathan Racklyeft. All rights reserved. -// - -import HealthKit - - -extension HKUnit { - static let milligramsPerDeciliter: HKUnit = { - return HKUnit.gramUnit(with: .milli).unitDivided(by: HKUnit.literUnit(with: .deci)) - }() - - static let milligramsPerDeciliterPerMinute: HKUnit = { - return HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()) - }() -} diff --git a/G7SensorKit.xcodeproj/project.pbxproj b/G7SensorKit.xcodeproj/project.pbxproj index c6c8c6a..f2f251f 100644 --- a/G7SensorKit.xcodeproj/project.pbxproj +++ b/G7SensorKit.xcodeproj/project.pbxproj @@ -9,7 +9,6 @@ /* Begin PBXBuildFile section */ C109F14A291ECCE2008EA5B6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C109F149291ECCE2008EA5B6 /* Assets.xcassets */; }; C109F14C291ED66F008EA5B6 /* G7GlucoseMessageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C109F14B291ED66F008EA5B6 /* G7GlucoseMessageTests.swift */; }; - C139829829295D7D0047DB5F /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514A291EB6F000555EB5 /* HKUnit.swift */; }; C1409A07291EC21C006BE8D0 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5126291EAF2F00555EB5 /* OSLog.swift */; }; C1409A09291EC22F006BE8D0 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1409A08291EC22F006BE8D0 /* OSLog.swift */; }; C1409A0B291EC258006BE8D0 /* OSLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1409A0A291EC258006BE8D0 /* OSLog.swift */; }; @@ -48,7 +47,6 @@ C17F5145291EB45900555EB5 /* CBPeripheral.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5144291EB45900555EB5 /* CBPeripheral.swift */; }; C17F5147291EB57700555EB5 /* SensorMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5146291EB57700555EB5 /* SensorMessage.swift */; }; C17F5149291EB6B600555EB5 /* LocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5148291EB6B600555EB5 /* LocalizedString.swift */; }; - C17F514B291EB6F000555EB5 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514A291EB6F000555EB5 /* HKUnit.swift */; }; C17F514D291EB79E00555EB5 /* AlgorithmError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F514C291EB79E00555EB5 /* AlgorithmError.swift */; }; C17F514F291EB87600555EB5 /* G7SensorKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C17F50C6291EAC3800555EB5 /* G7SensorKit.framework */; }; C17F5156291EBD8600555EB5 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17F5155291EBD8600555EB5 /* Image.swift */; }; @@ -166,7 +164,6 @@ C17F5144291EB45900555EB5 /* CBPeripheral.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CBPeripheral.swift; sourceTree = ""; }; C17F5146291EB57700555EB5 /* SensorMessage.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; path = SensorMessage.swift; sourceTree = ""; }; C17F5148291EB6B600555EB5 /* LocalizedString.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizedString.swift; sourceTree = ""; }; - C17F514A291EB6F000555EB5 /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; C17F514C291EB79E00555EB5 /* AlgorithmError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlgorithmError.swift; sourceTree = ""; }; C17F5155291EBD8600555EB5 /* Image.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Image.swift; sourceTree = ""; }; C17F5158291EBE7500555EB5 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -346,7 +343,6 @@ C17F5137291EB0A800555EB5 /* Data.swift */, C17F5148291EB6B600555EB5 /* LocalizedString.swift */, C17F513B291EB13D00555EB5 /* Locked.swift */, - C17F514A291EB6F000555EB5 /* HKUnit.swift */, C17F513F291EB27D00555EB5 /* TimeInterval.swift */, ); path = Common; @@ -610,7 +606,6 @@ C17F5135291EB06A00555EB5 /* AlgorithmState.swift in Sources */, C17F50F1291EAC6500555EB5 /* G7BluetoothManager.swift in Sources */, C17F5138291EB0A800555EB5 /* Data.swift in Sources */, - C17F514B291EB6F000555EB5 /* HKUnit.swift in Sources */, C17F50EC291EAC6500555EB5 /* G7LastReading.swift in Sources */, C17F513C291EB13D00555EB5 /* Locked.swift in Sources */, C17F513E291EB1A500555EB5 /* BluetoothServices.swift in Sources */, @@ -639,7 +634,6 @@ C17F5157291EBD9900555EB5 /* TimeInterval.swift in Sources */, C19C9F4E29C91C4C00A6D3D0 /* LocalizedString.swift in Sources */, C17F5156291EBD8600555EB5 /* Image.swift in Sources */, - C139829829295D7D0047DB5F /* HKUnit.swift in Sources */, C1409A07291EC21C006BE8D0 /* OSLog.swift in Sources */, C17F510A291EAC9D00555EB5 /* G7UICoordinator.swift in Sources */, C17F5109291EAC9D00555EB5 /* G7CGMManager+UI.swift in Sources */, diff --git a/G7SensorKit/G7CGMManager/G7Sensor.swift b/G7SensorKit/G7CGMManager/G7Sensor.swift index d5c0b46..96bbebc 100644 --- a/G7SensorKit/G7CGMManager/G7Sensor.swift +++ b/G7SensorKit/G7CGMManager/G7Sensor.swift @@ -8,7 +8,6 @@ import Foundation import CoreBluetooth -import HealthKit import os.log diff --git a/G7SensorKitUI/Views/G7SettingsViewModel.swift b/G7SensorKitUI/Views/G7SettingsViewModel.swift index 93bff10..dd5370a 100644 --- a/G7SensorKitUI/Views/G7SettingsViewModel.swift +++ b/G7SensorKitUI/Views/G7SettingsViewModel.swift @@ -10,7 +10,6 @@ import Foundation import G7SensorKit import LoopKit import LoopKitUI -import HealthKit public enum ColorStyle { case glucose, warning, critical, normal, dimmed From f71f690c7a5aeeaf8d95b93fbaa8ba15b6849abd Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Fri, 6 Dec 2024 14:39:39 -0800 Subject: [PATCH 09/16] Bump to iOS 17 --- G7SensorKit.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/G7SensorKit.xcodeproj/project.pbxproj b/G7SensorKit.xcodeproj/project.pbxproj index f2f251f..5f78a30 100644 --- a/G7SensorKit.xcodeproj/project.pbxproj +++ b/G7SensorKit.xcodeproj/project.pbxproj @@ -790,7 +790,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, CFCopyLocalizedString, @@ -851,7 +851,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, CFCopyLocalizedString, From e91bc458ff8d562dafc1600915e894bea5af10da Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Fri, 6 Dec 2024 14:39:39 -0800 Subject: [PATCH 10/16] Bump to iOS 17 --- G7SensorKit.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/G7SensorKit.xcodeproj/project.pbxproj b/G7SensorKit.xcodeproj/project.pbxproj index f2f251f..5f78a30 100644 --- a/G7SensorKit.xcodeproj/project.pbxproj +++ b/G7SensorKit.xcodeproj/project.pbxproj @@ -790,7 +790,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, CFCopyLocalizedString, @@ -851,7 +851,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.1; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, CFCopyLocalizedString, From bbc71454484473b62f2b9890ee486c5f1d04b007 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Mon, 7 Apr 2025 11:13:05 -0700 Subject: [PATCH 11/16] [LOOP-5280] Display Glucose Preference by InternationalUnit --- G7SensorKitUI/Views/G7SettingsViewModel.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/G7SensorKitUI/Views/G7SettingsViewModel.swift b/G7SensorKitUI/Views/G7SettingsViewModel.swift index dd5370a..18c1607 100644 --- a/G7SensorKitUI/Views/G7SettingsViewModel.swift +++ b/G7SensorKitUI/Views/G7SettingsViewModel.swift @@ -184,7 +184,7 @@ class G7SettingsViewModel: ObservableObject { var lastGlucoseTrendString: String { if let lastReading = lastReading, lastReading.hasReliableGlucose, let trendRate = lastReading.trendRate { - return displayGlucosePreference.minuteRateFormatter.string(from: trendRate)! + return displayGlucosePreference.formatMinuteRate(trendRate) } else { return "" } From bbe3c7a2c0558b7bc325f8a7a760478815840447 Mon Sep 17 00:00:00 2001 From: Cameron Ingham Date: Mon, 7 Apr 2025 11:13:05 -0700 Subject: [PATCH 12/16] [LOOP-5280] Display Glucose Preference by InternationalUnit --- G7SensorKitUI/Views/G7SettingsViewModel.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/G7SensorKitUI/Views/G7SettingsViewModel.swift b/G7SensorKitUI/Views/G7SettingsViewModel.swift index dd5370a..18c1607 100644 --- a/G7SensorKitUI/Views/G7SettingsViewModel.swift +++ b/G7SensorKitUI/Views/G7SettingsViewModel.swift @@ -184,7 +184,7 @@ class G7SettingsViewModel: ObservableObject { var lastGlucoseTrendString: String { if let lastReading = lastReading, lastReading.hasReliableGlucose, let trendRate = lastReading.trendRate { - return displayGlucosePreference.minuteRateFormatter.string(from: trendRate)! + return displayGlucosePreference.formatMinuteRate(trendRate) } else { return "" } From 4a4f42712323674b65264eb9b6ca10ffe39b7875 Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Thu, 24 Jul 2025 12:30:55 -0500 Subject: [PATCH 13/16] Changes for protocol updates --- G7SensorKit/G7CGMManager/G7CGMManager.swift | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/G7SensorKit/G7CGMManager/G7CGMManager.swift b/G7SensorKit/G7CGMManager/G7CGMManager.swift index 4f7d816..0354b58 100644 --- a/G7SensorKit/G7CGMManager/G7CGMManager.swift +++ b/G7SensorKit/G7CGMManager/G7CGMManager.swift @@ -221,9 +221,7 @@ public class G7CGMManager: CGMManager { return lines.joined(separator: "\n") } - public func acknowledgeAlert(alertIdentifier: LoopKit.Alert.AlertIdentifier, completion: @escaping (Error?) -> Void) { - completion(nil) - } + public func acknowledgeAlert(alertIdentifier: Alert.AlertIdentifier) async throws { } public func getSoundBaseURL() -> URL? { return nil } public func getSounds() -> [Alert.Sound] { return [] } From d90b27f82b780000c5be12b959f439e610f1b90e Mon Sep 17 00:00:00 2001 From: Pete Schwamb Date: Thu, 24 Jul 2025 12:30:55 -0500 Subject: [PATCH 14/16] Changes for protocol updates --- G7SensorKit/G7CGMManager/G7CGMManager.swift | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/G7SensorKit/G7CGMManager/G7CGMManager.swift b/G7SensorKit/G7CGMManager/G7CGMManager.swift index 4f7d816..0354b58 100644 --- a/G7SensorKit/G7CGMManager/G7CGMManager.swift +++ b/G7SensorKit/G7CGMManager/G7CGMManager.swift @@ -221,9 +221,7 @@ public class G7CGMManager: CGMManager { return lines.joined(separator: "\n") } - public func acknowledgeAlert(alertIdentifier: LoopKit.Alert.AlertIdentifier, completion: @escaping (Error?) -> Void) { - completion(nil) - } + public func acknowledgeAlert(alertIdentifier: Alert.AlertIdentifier) async throws { } public func getSoundBaseURL() -> URL? { return nil } public func getSounds() -> [Alert.Sound] { return [] } From 77e01a5c43b5c24b1f6ff0a39336b934951f32b9 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Fri, 24 Oct 2025 17:30:41 -0300 Subject: [PATCH 15/16] [LOOP-5496] adding loop status checks (#11) --- G7SensorKit/G7CGMManager/G7CGMManager.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/G7SensorKit/G7CGMManager/G7CGMManager.swift b/G7SensorKit/G7CGMManager/G7CGMManager.swift index 0354b58..6d8e001 100644 --- a/G7SensorKit/G7CGMManager/G7CGMManager.swift +++ b/G7SensorKit/G7CGMManager/G7CGMManager.swift @@ -20,6 +20,12 @@ public protocol G7StateObserver: AnyObject { } public class G7CGMManager: CGMManager { + public var inSignalLoss: Bool = false + + public var isInoperable: Bool { + cgmManagerStatus.isInoperable + } + private let log = OSLog(category: "G7CGMManager") public var state: G7CGMManagerState { From 181c684a96567fa7ccba4b4df57a8c63aae3ca15 Mon Sep 17 00:00:00 2001 From: Nathaniel Hamming Date: Fri, 24 Oct 2025 17:30:41 -0300 Subject: [PATCH 16/16] [LOOP-5496] adding loop status checks (#11) --- G7SensorKit/G7CGMManager/G7CGMManager.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/G7SensorKit/G7CGMManager/G7CGMManager.swift b/G7SensorKit/G7CGMManager/G7CGMManager.swift index 0354b58..6d8e001 100644 --- a/G7SensorKit/G7CGMManager/G7CGMManager.swift +++ b/G7SensorKit/G7CGMManager/G7CGMManager.swift @@ -20,6 +20,12 @@ public protocol G7StateObserver: AnyObject { } public class G7CGMManager: CGMManager { + public var inSignalLoss: Bool = false + + public var isInoperable: Bool { + cgmManagerStatus.isInoperable + } + private let log = OSLog(category: "G7CGMManager") public var state: G7CGMManagerState {