diff --git a/Loop Status Extension/Info.plist b/Loop Status Extension/Info.plist index 457555e233..ab9e66d865 100644 --- a/Loop Status Extension/Info.plist +++ b/Loop Status Extension/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 1.1.2 + 1.2.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) MainAppBundleIdentifier diff --git a/Loop Status Extension/StatusExtensionContext.swift b/Loop Status Extension/StatusExtensionContext.swift index bbe312e46a..9b3a71c353 100644 --- a/Loop Status Extension/StatusExtensionContext.swift +++ b/Loop Status Extension/StatusExtensionContext.swift @@ -40,7 +40,7 @@ struct GlucoseContext { let sensor: SensorDisplayable? } -final class StatusExtensionContext: NSObject, RawRepresentable { +final class StatusExtensionContext: RawRepresentable { typealias RawValue = [String: Any] private let version = 1 @@ -52,12 +52,9 @@ final class StatusExtensionContext: NSObject, RawRepresentable { var batteryPercentage: Double? var eventualGlucose: Double? - override init() { - super.init() - } + init() { } required init?(rawValue: RawValue) { - super.init() let raw = rawValue if let preferredString = raw["preferredUnitDisplayString"] as? String, @@ -161,3 +158,10 @@ final class StatusExtensionContext: NSObject, RawRepresentable { return raw } } + + +extension StatusExtensionContext: CustomDebugStringConvertible { + var debugDescription: String { + return String(reflecting: rawValue) + } +} diff --git a/Loop/Managers/DeviceDataManager.swift b/Loop/Managers/DeviceDataManager.swift index 1db7f0c5d6..495ef0333e 100644 --- a/Loop/Managers/DeviceDataManager.swift +++ b/Loop/Managers/DeviceDataManager.swift @@ -975,11 +975,11 @@ final class DeviceDataManager: CarbStoreDelegate, CarbStoreSyncDelegate, DoseSto // MARK: - WatchKit - private(set) var watchManager: WatchDataManager! + fileprivate var watchManager: WatchDataManager! // MARK: - Status Extension - private(set) var statusExtensionManager: StatusExtensionDataManager! + fileprivate var statusExtensionManager: StatusExtensionDataManager! // MARK: - Initialization @@ -1075,7 +1075,11 @@ extension DeviceDataManager: CustomDebugStringConvertible { "workoutModeEnabled: \(workoutModeEnabled)", "maximumBasalRatePerHour: \(maximumBasalRatePerHour)", "maximumBolus: \(maximumBolus)", - String(reflecting: rileyLinkManager) + String(reflecting: rileyLinkManager), + String(reflecting: statusExtensionManager!), + "", + "## NSUserDefaults", + String(reflecting: UserDefaults.standard.dictionaryRepresentation()) ].joined(separator: "\n") } } diff --git a/Loop/Managers/StatusExtensionDataManager.swift b/Loop/Managers/StatusExtensionDataManager.swift index e0aef3324e..6fd6a4c60f 100644 --- a/Loop/Managers/StatusExtensionDataManager.swift +++ b/Loop/Managers/StatusExtensionDataManager.swift @@ -20,13 +20,17 @@ final class StatusExtensionDataManager { NotificationCenter.default.addObserver(self, selector: #selector(update(_:)), name: .LoopDataUpdated, object: deviceDataManager.loopManager) } + fileprivate var defaults: UserDefaults? { + return UserDefaults(suiteName: Bundle.main.appGroupSuiteName) + } + @objc private func update(_ notification: Notification) { self.dataManager.glucoseStore?.preferredUnit() { (unit, error) in if error == nil, let unit = unit { self.createContext(unit) { (context) in if let context = context { - UserDefaults(suiteName: Bundle.main.appGroupSuiteName)?.statusExtensionContext = context + self.defaults?.statusExtensionContext = context } } } @@ -98,3 +102,13 @@ final class StatusExtensionDataManager { } } } + + +extension StatusExtensionDataManager: CustomDebugStringConvertible { + var debugDescription: String { + return [ + "## StatusExtensionDataManager", + "statusExtensionContext: \(String(reflecting: defaults?.statusExtensionContext))" + ].joined(separator: "\n") + } +}