diff --git a/CGMBLEKit Example/ViewController.swift b/CGMBLEKit Example/ViewController.swift index f1d2766..42a754a 100644 --- a/CGMBLEKit Example/ViewController.swift +++ b/CGMBLEKit Example/ViewController.swift @@ -6,9 +6,9 @@ // Copyright © 2015 Nathan Racklyeft. All rights reserved. // -import UIKit -import HealthKit import CGMBLEKit +import LoopAlgorithm +import UIKit class ViewController: UIViewController, TransmitterDelegate, UITextFieldDelegate { @@ -77,7 +77,7 @@ class ViewController: UIViewController, TransmitterDelegate, UITextFieldDelegate @IBAction func calibrate(_ sender: UIButton) { let dialog = UIAlertController(title: "Enter BG", message: "Calibrate sensor.", preferredStyle: .alert) - let unit = HKUnit.milligramsPerDeciliter + let unit = LoopUnit.milligramsPerDeciliter dialog.addTextField { (textField : UITextField!) in textField.placeholder = unit.unitString @@ -86,15 +86,15 @@ class ViewController: UIViewController, TransmitterDelegate, UITextFieldDelegate dialog.addAction(UIAlertAction(title: "Calibrate", style: .default, handler: { (action: UIAlertAction!) in let textField = dialog.textFields![0] as UITextField - let minGlucose = HKQuantity(unit: HKUnit.milligramsPerDeciliter, doubleValue: 40) - let maxGlucose = HKQuantity(unit: HKUnit.milligramsPerDeciliter, doubleValue: 400) + let minGlucose = LoopQuantity(unit: .milligramsPerDeciliter, doubleValue: 40) + let maxGlucose = LoopQuantity(unit: .milligramsPerDeciliter, doubleValue: 400) if let text = textField.text, let entry = Double(text) { guard entry >= minGlucose.doubleValue(for: unit) && entry <= maxGlucose.doubleValue(for: unit) else { // TODO: notify the user if the glucose is not in range return } - let glucose = HKQuantity(unit: unit, doubleValue: Double(entry)) + let glucose = LoopQuantity(unit: unit, doubleValue: Double(entry)) AppDelegate.sharedDelegate.commandQueue.enqueue(.calibrateSensor(to: glucose, at: Date())) } })) @@ -161,7 +161,7 @@ class ViewController: UIViewController, TransmitterDelegate, UITextFieldDelegate } func transmitter(_ transmitter: Transmitter, didRead glucose: Glucose) { - let unit = HKUnit.milligramsPerDeciliter + let unit = LoopUnit.milligramsPerDeciliter if let value = glucose.glucose?.doubleValue(for: unit) { titleLabel.text = "\(value) \(unit.unitString)" } else { diff --git a/CGMBLEKit.xcodeproj/project.pbxproj b/CGMBLEKit.xcodeproj/project.pbxproj index 8bc3f9e..3b3ab95 100644 --- a/CGMBLEKit.xcodeproj/project.pbxproj +++ b/CGMBLEKit.xcodeproj/project.pbxproj @@ -40,7 +40,6 @@ 4379CFD7210EB1BF00AADC79 /* Locked.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4379CFD5210EB19F00AADC79 /* Locked.swift */; }; 4379CFD9210EB3AC00AADC79 /* UIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4379CFD8210EB3AB00AADC79 /* UIColor.swift */; }; 4379CFDA210EB3D200AADC79 /* CGMBLEKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 43CABDF31C3506F100005705 /* CGMBLEKit.framework */; }; - 4379CFE1210EC27500AADC79 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E397921D56950C0028E321 /* HKUnit.swift */; }; 4379CFE52110EBAE00AADC79 /* TransmitterSetupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4379CFE42110EBAE00AADC79 /* TransmitterSetupViewController.swift */; }; 4379CFE72110EC5500AADC79 /* TransmitterIDSetupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4379CFE62110EC5500AADC79 /* TransmitterIDSetupViewController.swift */; }; 4379CFEA2110EDB100AADC79 /* TransmitterManagerSetup.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4379CFEC2110EDB100AADC79 /* TransmitterManagerSetup.storyboard */; }; @@ -105,10 +104,7 @@ 43E3978B1D5668BD0028E321 /* CalibrationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E3978A1D5668BD0028E321 /* CalibrationState.swift */; }; 43E3978F1D566B170028E321 /* Glucose.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E3978E1D566B170028E321 /* Glucose.swift */; }; 43E397911D5692080028E321 /* GlucoseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E397901D5692080028E321 /* GlucoseTests.swift */; }; - 43E397931D56950C0028E321 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E397921D56950C0028E321 /* HKUnit.swift */; }; 43E4B1F21F8AF9790038823E /* PeripheralManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E4B1F11F8AF9790038823E /* PeripheralManager.swift */; }; - 43E5292C2060C4FA00ACEB3B /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E397921D56950C0028E321 /* HKUnit.swift */; }; - 43E5292D2060C50800ACEB3B /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E397921D56950C0028E321 /* HKUnit.swift */; }; 43EEA7111D14DC0800CBBDA0 /* AESCrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 43EEA70F1D14DC0800CBBDA0 /* AESCrypt.h */; settings = {ATTRIBUTES = (Public, ); }; }; 43EEA7121D14DC0800CBBDA0 /* AESCrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = 43EEA7101D14DC0800CBBDA0 /* AESCrypt.m */; }; 43F82BCC1D035AA4006F5DD7 /* TransmitterTimeRxMessageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43F82BCB1D035AA4006F5DD7 /* TransmitterTimeRxMessageTests.swift */; }; @@ -132,7 +128,6 @@ A9AD37EC225EEE850058C179 /* AuthRequestRxMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CABE171C350B3D00005705 /* AuthRequestRxMessage.swift */; }; A9AD37ED225EEE850058C179 /* AuthChallengeRxMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CABE1A1C350B3D00005705 /* AuthChallengeRxMessage.swift */; }; A9AD37EE225EEE850058C179 /* GlucoseHistoryTxMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CE7CD31CA73CE8003CC1B0 /* GlucoseHistoryTxMessage.swift */; }; - A9AD37EF225EEE850058C179 /* HKUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43E397921D56950C0028E321 /* HKUnit.swift */; }; A9AD37F0225EEE850058C179 /* CalibrationDataRxMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43846AC51D8F896C00799272 /* CalibrationDataRxMessage.swift */; }; A9AD37F1225EEE850058C179 /* SessionStopTxMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CE7CCF1CA73C57003CC1B0 /* SessionStopTxMessage.swift */; }; A9AD37F2225EEE850058C179 /* PeripheralManager+G5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 431CE7661F91D0B300255374 /* PeripheralManager+G5.swift */; }; @@ -432,7 +427,6 @@ 43E3978A1D5668BD0028E321 /* CalibrationState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalibrationState.swift; sourceTree = ""; }; 43E3978E1D566B170028E321 /* Glucose.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Glucose.swift; sourceTree = ""; }; 43E397901D5692080028E321 /* GlucoseTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlucoseTests.swift; sourceTree = ""; }; - 43E397921D56950C0028E321 /* HKUnit.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HKUnit.swift; sourceTree = ""; }; 43E4B1F11F8AF9790038823E /* PeripheralManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeripheralManager.swift; sourceTree = ""; }; 43EEA70F1D14DC0800CBBDA0 /* AESCrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AESCrypt.h; sourceTree = ""; }; 43EEA7101D14DC0800CBBDA0 /* AESCrypt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AESCrypt.m; sourceTree = ""; }; @@ -772,7 +766,6 @@ isa = PBXGroup; children = ( 43DC87BF1C8B509B005BC30D /* Data.swift */, - 43E397921D56950C0028E321 /* HKUnit.swift */, 43026D3E2131C5C600A332E2 /* LocalizedString.swift */, 4379CFD5210EB19F00AADC79 /* Locked.swift */, 4379CFD1210EB0F700AADC79 /* TimeInterval.swift */, @@ -1186,7 +1179,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 43E5292C2060C4FA00ACEB3B /* HKUnit.swift in Sources */, C1CD8B0C203931AD00A8F498 /* NSUserDefaults.swift in Sources */, E71BFF7E20673BD700C876A2 /* CommandQueue.swift in Sources */, 43D140CE2047AA930032346D /* Data.swift in Sources */, @@ -1199,7 +1191,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4379CFE1210EC27500AADC79 /* HKUnit.swift in Sources */, 4325E9E8210EAED100969CE5 /* TransmitterManager+UI.swift in Sources */, 4379CFD9210EB3AC00AADC79 /* UIColor.swift in Sources */, 4325E9E9210EAED100969CE5 /* TransmitterSettingsViewController.swift in Sources */, @@ -1230,7 +1221,6 @@ 43CABE261C350B3D00005705 /* AuthChallengeRxMessage.swift in Sources */, 43CE7CD41CA73CE8003CC1B0 /* GlucoseHistoryTxMessage.swift in Sources */, C1614F082AAFD07700F636E5 /* TransmitterManagerState.swift in Sources */, - 43E397931D56950C0028E321 /* HKUnit.swift in Sources */, 43846AC61D8F896C00799272 /* CalibrationDataRxMessage.swift in Sources */, 43CE7CD01CA73C57003CC1B0 /* SessionStopTxMessage.swift in Sources */, 431CE7671F91D0B300255374 /* PeripheralManager+G5.swift in Sources */, @@ -1275,7 +1265,6 @@ 43460F88200B30D10030C0E3 /* TransmitterIDTests.swift in Sources */, 43F82BCC1D035AA4006F5DD7 /* TransmitterTimeRxMessageTests.swift in Sources */, 433BC81D205CBB16000B1200 /* GlucoseBackfillMessageTests.swift in Sources */, - 43E5292D2060C50800ACEB3B /* HKUnit.swift in Sources */, 43F82BD41D037227006F5DD7 /* SessionStartRxMessageTests.swift in Sources */, 43846AC81D8F89BE00799272 /* CalibrationDataRxMessageTests.swift in Sources */, 43DC87C01C8B509B005BC30D /* Data.swift in Sources */, @@ -1305,7 +1294,6 @@ A9AD37EC225EEE850058C179 /* AuthRequestRxMessage.swift in Sources */, A9AD37ED225EEE850058C179 /* AuthChallengeRxMessage.swift in Sources */, A9AD37EE225EEE850058C179 /* GlucoseHistoryTxMessage.swift in Sources */, - A9AD37EF225EEE850058C179 /* HKUnit.swift in Sources */, A9AD37F0225EEE850058C179 /* CalibrationDataRxMessage.swift in Sources */, A9AD37F1225EEE850058C179 /* SessionStopTxMessage.swift in Sources */, A9AD37F2225EEE850058C179 /* PeripheralManager+G5.swift in Sources */, @@ -1490,10 +1478,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ResetTransmitter/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.loopkit.ResetTransmitter; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; @@ -1522,10 +1507,7 @@ GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ResetTransmitter/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.loopkit.ResetTransmitter; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = NO; @@ -1712,7 +1694,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; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, @@ -1775,7 +1757,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; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; LOCALIZED_STRING_MACRO_NAMES = ( NSLocalizedString, diff --git a/CGMBLEKit/Calibration.swift b/CGMBLEKit/Calibration.swift index fd05c90..80768a5 100644 --- a/CGMBLEKit/Calibration.swift +++ b/CGMBLEKit/Calibration.swift @@ -7,7 +7,7 @@ // import Foundation -import HealthKit +import LoopAlgorithm public struct Calibration { @@ -16,12 +16,12 @@ public struct Calibration { return nil } - let unit = HKUnit.milligramsPerDeciliter + let unit = LoopUnit.milligramsPerDeciliter - glucose = HKQuantity(unit: unit, doubleValue: Double(calibrationMessage.glucose)) + glucose = LoopQuantity(unit: unit, doubleValue: Double(calibrationMessage.glucose)) date = activationDate.addingTimeInterval(TimeInterval(calibrationMessage.timestamp)) } - public let glucose: HKQuantity + public let glucose: LoopQuantity public let date: Date } diff --git a/CGMBLEKit/Command.swift b/CGMBLEKit/Command.swift index c9d0e2b..7568f10 100644 --- a/CGMBLEKit/Command.swift +++ b/CGMBLEKit/Command.swift @@ -7,15 +7,14 @@ // import Foundation -import HealthKit - +import LoopAlgorithm public enum Command: RawRepresentable { public typealias RawValue = [String: Any] case startSensor(at: Date) case stopSensor(at: Date) - case calibrateSensor(to: HKQuantity, at: Date) + case calibrateSensor(to: LoopQuantity, at: Date) case resetTransmitter public init?(rawValue: RawValue) { @@ -37,7 +36,7 @@ public enum Command: RawRepresentable { } self = .stopSensor(at: date) case .calibrateSensor?: - guard let date = date, let glucose = rawValue["glucose"] as? HKQuantity else { + guard let date = date, let glucose = rawValue["glucose"] as? LoopQuantity else { return nil } self = .calibrateSensor(to: glucose, at: date) diff --git a/CGMBLEKit/Glucose+SensorDisplayable.swift b/CGMBLEKit/Glucose+SensorDisplayable.swift index e37feaa..7832228 100644 --- a/CGMBLEKit/Glucose+SensorDisplayable.swift +++ b/CGMBLEKit/Glucose+SensorDisplayable.swift @@ -8,6 +8,7 @@ import Foundation import LoopKit +import LoopAlgorithm extension Glucose: GlucoseDisplayable { diff --git a/CGMBLEKit/Glucose.swift b/CGMBLEKit/Glucose.swift index 042a125..7c2f535 100644 --- a/CGMBLEKit/Glucose.swift +++ b/CGMBLEKit/Glucose.swift @@ -7,7 +7,7 @@ // import Foundation -import HealthKit +import LoopAlgorithm enum GlucoseLimits { static var minimum: UInt16 = 40 @@ -80,14 +80,14 @@ public struct Glucose { return glucoseMessage.glucoseIsDisplayOnly } - public var glucose: HKQuantity? { - guard state.hasReliableGlucose && glucoseMessage.glucose >= 39 else { + public var glucose: LoopQuantity? { + guard state.hasReliableGlucose && glucoseMessage.glucose >= 39 else { return nil } - let unit = HKUnit.milligramsPerDeciliter + let unit = LoopUnit.milligramsPerDeciliter - return HKQuantity(unit: unit, doubleValue: Double(min(max(glucoseMessage.glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) + return LoopQuantity(unit: unit, doubleValue: Double(min(max(glucoseMessage.glucose, GlucoseLimits.minimum), GlucoseLimits.maximum))) } public var state: CalibrationState { @@ -98,13 +98,13 @@ public struct Glucose { return Int(glucoseMessage.trend) } - public var trendRate: HKQuantity? { + public var trendRate: LoopQuantity? { guard glucoseMessage.trend < Int8.max && glucoseMessage.trend > Int8.min else { return nil } - let unit = HKUnit.milligramsPerDeciliterPerMinute - return HKQuantity(unit: unit, doubleValue: Double(glucoseMessage.trend) / 10) + let unit = LoopUnit.milligramsPerDeciliterPerMinute + return LoopQuantity(unit: unit, doubleValue: Double(glucoseMessage.trend) / 10) } // An identifier for this reading thatʼs consistent between backfill/live data diff --git a/CGMBLEKit/Transmitter.swift b/CGMBLEKit/Transmitter.swift index d2d1534..07f6a35 100644 --- a/CGMBLEKit/Transmitter.swift +++ b/CGMBLEKit/Transmitter.swift @@ -8,7 +8,6 @@ import Foundation import CoreBluetooth -import HealthKit import os.log diff --git a/CGMBLEKit/TransmitterManager.swift b/CGMBLEKit/TransmitterManager.swift index 682d9dd..e5bd039 100644 --- a/CGMBLEKit/TransmitterManager.swift +++ b/CGMBLEKit/TransmitterManager.swift @@ -6,6 +6,7 @@ // import HealthKit +import LoopAlgorithm import LoopKit import ShareClient import os.log @@ -132,8 +133,8 @@ public class TransmitterManager: TransmitterDelegate { } }() - let quantity = HKQuantity(unit: .milligramsPerDeciliter, doubleValue: glucoseValue) - let trendRate = HKQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trendRateValue) + let quantity = LoopQuantity(unit: .milligramsPerDeciliter, doubleValue: glucoseValue) + let trendRate = LoopQuantity(unit: .milligramsPerDeciliterPerMinute, doubleValue: trendRateValue) let sample = NewGlucoseSample(date: timestamp, quantity: quantity, condition: nil, trend: trend, trendRate: trendRate, isDisplayOnly: false, wasUserEntered: false, syncIdentifier: syncIdentifier) self.updateDelegate(with: .newData([sample])) } @@ -453,7 +454,13 @@ extension TransmitterManager { public class G5CGMManager: TransmitterManager, CGMManager { - public static let pluginIdentifier: String = "DexG5Transmitter" + public var inSignalLoss: Bool = false + + public var isInoperable: Bool { + cgmManagerStatus.isInoperable + } + + public let pluginIdentifier: String = "DexG5Transmitter" public let localizedTitle = LocalizedString("Dexcom G5", comment: "CGM display title") @@ -490,7 +497,13 @@ public class G5CGMManager: TransmitterManager, CGMManager { public class G6CGMManager: TransmitterManager, CGMManager { - public static let pluginIdentifier: String = "DexG6Transmitter" + public var inSignalLoss: Bool = false + + public var isInoperable: Bool { + cgmManagerStatus.isInoperable + } + + public let pluginIdentifier: String = "DexG6Transmitter" public let localizedTitle = LocalizedString("Dexcom G6", comment: "CGM display title") @@ -568,9 +581,7 @@ extension CalibrationState { // MARK: - AlertResponder implementation extension G5CGMManager { - public func acknowledgeAlert(alertIdentifier: Alert.AlertIdentifier, completion: @escaping (Error?) -> Void) { - completion(nil) - } + public func acknowledgeAlert(alertIdentifier: LoopKit.Alert.AlertIdentifier) async throws { } } // MARK: - AlertSoundVendor implementation @@ -581,9 +592,7 @@ extension G5CGMManager { // MARK: - AlertResponder implementation extension G6CGMManager { - public func acknowledgeAlert(alertIdentifier: Alert.AlertIdentifier, completion: @escaping (Error?) -> Void) { - completion(nil) - } + public func acknowledgeAlert(alertIdentifier: LoopKit.Alert.AlertIdentifier) async throws { } } // MARK: - AlertSoundVendor implementation diff --git a/CGMBLEKitTests/GlucoseTests.swift b/CGMBLEKitTests/GlucoseTests.swift index 5700d07..44f173f 100644 --- a/CGMBLEKitTests/GlucoseTests.swift +++ b/CGMBLEKitTests/GlucoseTests.swift @@ -7,7 +7,6 @@ // import XCTest -import HealthKit @testable import CGMBLEKit class GlucoseTests: XCTestCase { diff --git a/CGMBLEKitUI/TransmitterManager+UI.swift b/CGMBLEKitUI/TransmitterManager+UI.swift index 0cabda7..5c595e0 100644 --- a/CGMBLEKitUI/TransmitterManager+UI.swift +++ b/CGMBLEKitUI/TransmitterManager+UI.swift @@ -8,7 +8,6 @@ import SwiftUI import LoopKit import LoopKitUI -import HealthKit import CGMBLEKit diff --git a/CGMBLEKitUI/TransmitterSettingsViewController.swift b/CGMBLEKitUI/TransmitterSettingsViewController.swift index da548e6..680aa17 100644 --- a/CGMBLEKitUI/TransmitterSettingsViewController.swift +++ b/CGMBLEKitUI/TransmitterSettingsViewController.swift @@ -7,7 +7,7 @@ import UIKit import Combine -import HealthKit +import LoopAlgorithm import LoopKit import LoopKitUI import CGMBLEKit @@ -523,7 +523,7 @@ private extension UIAlertController { private extension SettingsTableViewCell { - func setGlucose(_ glucose: HKQuantity?, formatter: QuantityFormatter, isDisplayOnly: Bool) { + func setGlucose(_ glucose: LoopQuantity?, formatter: QuantityFormatter, isDisplayOnly: Bool) { if isDisplayOnly { textLabel?.text = LocalizedString("Glucose (Adjusted)", comment: "Describes a glucose value adjusted to reflect a recent calibration") } else { 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()) - }() -}