From 0532f20d0c8190471a42c24c4a73c1f2fc85b47f Mon Sep 17 00:00:00 2001 From: Dirk Hermanns Date: Wed, 5 Apr 2023 22:21:24 +0200 Subject: [PATCH] Added new complication target for the new SwiftUI Complications --- .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 11 + nightguard Complication/Info.plist | 11 + .../nightguard_Complication.intentdefinition | 59 ++++ .../nightguard_Complication.swift | 53 +++ .../AccessoryInlineView.swift | 23 ++ .../AccessoryRectangularView.swift | 23 ++ .../NightguardTimelineProvider.swift | 58 ++++ .../NightscoutDataEntry.swift | 58 ++++ .../nightguard_Widget_Extension.swift | 100 +----- nightguard.xcodeproj/project.pbxproj | 308 ++++++++++++++++-- ...guard WatchKit App (Complication).xcscheme | 3 +- .../xcschemes/xcschememanagement.plist | 5 + 15 files changed, 612 insertions(+), 130 deletions(-) create mode 100644 nightguard Complication/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 nightguard Complication/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 nightguard Complication/Assets.xcassets/Contents.json create mode 100644 nightguard Complication/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 nightguard Complication/Info.plist create mode 100644 nightguard Complication/nightguard_Complication.intentdefinition create mode 100644 nightguard Complication/nightguard_Complication.swift create mode 100644 nightguard Widget Extension/AccessoryInlineView.swift create mode 100644 nightguard Widget Extension/AccessoryRectangularView.swift create mode 100644 nightguard Widget Extension/NightguardTimelineProvider.swift create mode 100644 nightguard Widget Extension/NightscoutDataEntry.swift diff --git a/nightguard Complication/Assets.xcassets/AccentColor.colorset/Contents.json b/nightguard Complication/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 00000000..eb878970 --- /dev/null +++ b/nightguard Complication/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nightguard Complication/Assets.xcassets/AppIcon.appiconset/Contents.json b/nightguard Complication/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..49c81cd8 --- /dev/null +++ b/nightguard Complication/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "watchos", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nightguard Complication/Assets.xcassets/Contents.json b/nightguard Complication/Assets.xcassets/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/nightguard Complication/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nightguard Complication/Assets.xcassets/WidgetBackground.colorset/Contents.json b/nightguard Complication/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 00000000..eb878970 --- /dev/null +++ b/nightguard Complication/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/nightguard Complication/Info.plist b/nightguard Complication/Info.plist new file mode 100644 index 00000000..0f118fb7 --- /dev/null +++ b/nightguard Complication/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/nightguard Complication/nightguard_Complication.intentdefinition b/nightguard Complication/nightguard_Complication.intentdefinition new file mode 100644 index 00000000..bdb40455 --- /dev/null +++ b/nightguard Complication/nightguard_Complication.intentdefinition @@ -0,0 +1,59 @@ + + + + + INEnums + + INIntentDefinitionModelVersion + 1.2 + INIntentDefinitionNamespace + 88xZPY + INIntentDefinitionSystemVersion + 20A294 + INIntentDefinitionToolsBuildVersion + 12A6144 + INIntentDefinitionToolsVersion + 12.0 + INIntents + + + INIntentCategory + information + INIntentDescriptionID + tVvJ9c + INIntentEligibleForWidgets + + INIntentIneligibleForSuggestions + + INIntentName + Configuration + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Configuration + INIntentTitleID + gpCwrM + INIntentType + Custom + INIntentVerb + View + + + INTypes + + + diff --git a/nightguard Complication/nightguard_Complication.swift b/nightguard Complication/nightguard_Complication.swift new file mode 100644 index 00000000..670c3e7e --- /dev/null +++ b/nightguard Complication/nightguard_Complication.swift @@ -0,0 +1,53 @@ +// +// nightguard_Complication_Extension.swift +// nightguard Complication Extension +// +// Created by Dirk Hermanns on 02.04.23. +// Copyright © 2023 private. All rights reserved. +// + +import WidgetKit +import SwiftUI +import Intents + +struct nightguard_Complication_ExtensionEntryView : View { + + @Environment(\.widgetFamily) var widgetFamily + var entry: NightscoutDataEntry + + var body: some View { + switch widgetFamily { + case .accessoryCorner: + AccessoryInlineView(entry: entry) + case .accessoryCircular: + AccessoryInlineView(entry: entry) + case .accessoryInline: + AccessoryInlineView(entry: entry) + case .accessoryRectangular: + AccessoryRectangularView(entry: entry) + @unknown default: + //mandatory as there are more widget families as in lockscreen widgets etc + Text("Not an implemented widget yet") + } + } +} + +@main +struct nightguard_Complication_Extension: Widget { + let kind: String = "nightguard_Complication_Extension" + + var body: some WidgetConfiguration { + IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: NightguardTimelineProvider()) { entry in + nightguard_Complication_ExtensionEntryView(entry: entry) + } + .configurationDisplayName("BG Values") + .description("Nightguard BG Values Complication") + } +} + +struct nightguard_Complication_Extension_Previews: PreviewProvider { + static var previews: some View { + nightguard_Complication_ExtensionEntryView(entry: NightscoutDataEntry(date: Date(), configuration: ConfigurationIntent())) + .previewContext(WidgetPreviewContext(family: .accessoryRectangular)) + } +} diff --git a/nightguard Widget Extension/AccessoryInlineView.swift b/nightguard Widget Extension/AccessoryInlineView.swift new file mode 100644 index 00000000..15c6a9de --- /dev/null +++ b/nightguard Widget Extension/AccessoryInlineView.swift @@ -0,0 +1,23 @@ +// +// AccessoryInlineView.swift +// nightguard +// +// Created by Dirk Hermanns on 02.04.23. +// Copyright © 2023 private. All rights reserved. +// + +import Foundation +import SwiftUI +import WidgetKit + +struct AccessoryInlineView : View { + + var entry: NightscoutDataEntry + + var body: some View { + Text("| \(Date(timeIntervalSince1970: entry.time.doubleValue / 1000).toLocalTimeString()) " + "\(UnitsConverter.mgdlToDisplayUnits(entry.sgv))\(UnitsConverter.mgdlToDisplayUnits(entry.bgdeltaString))\(entry.bgdeltaArrow)") + + .widgetAccentable(true) + .unredacted() + } +} diff --git a/nightguard Widget Extension/AccessoryRectangularView.swift b/nightguard Widget Extension/AccessoryRectangularView.swift new file mode 100644 index 00000000..35c8803e --- /dev/null +++ b/nightguard Widget Extension/AccessoryRectangularView.swift @@ -0,0 +1,23 @@ +// +// AccessoryRectangularView.swift +// nightguard +// +// Created by Dirk Hermanns on 02.04.23. +// Copyright © 2023 private. All rights reserved. +// + +import Foundation +import SwiftUI +import WidgetKit + +struct AccessoryRectangularView : View { + + var entry: NightscoutDataEntry + + var body: some View { + Text("| \(Date(timeIntervalSince1970: entry.time.doubleValue / 1000).toLocalTimeString()) " + "\(UnitsConverter.mgdlToDisplayUnits(entry.sgv))\(UnitsConverter.mgdlToDisplayUnits(entry.bgdeltaString))\(entry.bgdeltaArrow)") + + .widgetAccentable(true) + .unredacted() + } +} diff --git a/nightguard Widget Extension/NightguardTimelineProvider.swift b/nightguard Widget Extension/NightguardTimelineProvider.swift new file mode 100644 index 00000000..94c1cfc7 --- /dev/null +++ b/nightguard Widget Extension/NightguardTimelineProvider.swift @@ -0,0 +1,58 @@ +// +// NightguardTimelineProvider.swift +// nightguard +// +// Created by Dirk Hermanns on 02.04.23. +// Copyright © 2023 private. All rights reserved. +// + +import Foundation +import WidgetKit + +struct NightguardTimelineProvider: IntentTimelineProvider { + + func recommendations() -> [IntentRecommendation] { + return [ + IntentRecommendation(intent: ConfigurationIntent(), description: "BG Values") + ] + } + + + func placeholder(in context: Context) -> NightscoutDataEntry { + + NightscoutDataEntry(configuration: ConfigurationIntent()) + } + + func getSnapshot(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (NightscoutDataEntry) -> ()) { + + completion(getTimelineData(configuration: configuration)) + } + + func getTimeline(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (Timeline) -> ()) { + + var entries: [NightscoutDataEntry] = [] + + entries.append(getTimelineData(configuration: configuration)) + + let timeline = Timeline(entries: entries, policy: .atEnd) + completion(timeline) + } + + private func getTimelineData(configuration: ConfigurationIntent) -> NightscoutDataEntry { + let data = NightscoutDataRepository.singleton.loadCurrentNightscoutData() + + let entry = NightscoutDataEntry( + date: Date(timeIntervalSince1970: data.time.doubleValue / 1000), + sgv: data.sgv, + bgdeltaString: data.bgdeltaString, + bgdeltaArrow: data.bgdeltaArrow, + bgdelta: data.bgdelta, + time: data.time, + battery: data.battery, + iob: data.iob, + cob: data.cob, + configuration: configuration) + + return entry + } +} diff --git a/nightguard Widget Extension/NightscoutDataEntry.swift b/nightguard Widget Extension/NightscoutDataEntry.swift new file mode 100644 index 00000000..d74b70bd --- /dev/null +++ b/nightguard Widget Extension/NightscoutDataEntry.swift @@ -0,0 +1,58 @@ +// +// NightscoutDataEntry.swift +// nightguard +// +// Created by Dirk Hermanns on 02.04.23. +// Copyright © 2023 private. All rights reserved. +// + +import Foundation +import WidgetKit +import Intents + +struct NightscoutDataEntry: TimelineEntry { + + var date: Date = Date() + + var sgv : String = "---" + // the delta Value in Display Units + var bgdeltaString : String = "---" + var bgdeltaArrow : String = "-" + // the delta value in mgdl + var bgdelta : Float = 0.0 + var hourAndMinutes : String { + get { + if time == 0 { + return "??:??" + } + let formatter = DateFormatter() + formatter.dateFormat = "HH:mm" + + let date = Date.init(timeIntervalSince1970: Double(time.int64Value / 1000)) + return formatter.string(from: date) + } + } + var timeString : String { + get { + if time == 0 { + return "-min" + } + + // trick: when displaying the time, we'll add 30 seconds to current time for showing the difference like Nightscout does (0-30 seconds: "0 mins", 31-90 seconds: "1 min", ...) + let thirtySeconds = Int64(30 * 1000) + + // calculate how old the current data is + let currentTime = Int64(Date().timeIntervalSince1970 * 1000) + thirtySeconds + let difference = (currentTime - time.int64Value) / 60000 + if difference > 59 { + return ">1Hr" + } + return String(difference) + "min" + } + } + var time : NSNumber = 0 + var battery : String = "---" + var iob : String = "" + var cob : String = "" + let configuration: ConfigurationIntent +} diff --git a/nightguard Widget Extension/nightguard_Widget_Extension.swift b/nightguard Widget Extension/nightguard_Widget_Extension.swift index 748e964b..fc067124 100644 --- a/nightguard Widget Extension/nightguard_Widget_Extension.swift +++ b/nightguard Widget Extension/nightguard_Widget_Extension.swift @@ -10,111 +10,19 @@ import WidgetKit import SwiftUI import Intents -struct Provider: IntentTimelineProvider { - - func placeholder(in context: Context) -> NightscoutDataEntry { - - NightscoutDataEntry(configuration: ConfigurationIntent()) - } - - func getSnapshot(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (NightscoutDataEntry) -> ()) { - - completion(getTimelineData(configuration: configuration)) - } - - func getTimeline(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (Timeline) -> ()) { - - var entries: [NightscoutDataEntry] = [] - - entries.append(getTimelineData(configuration: configuration)) - - let timeline = Timeline(entries: entries, policy: .atEnd) - completion(timeline) - } - - private func getTimelineData(configuration: ConfigurationIntent) -> NightscoutDataEntry { - let data = NightscoutDataRepository.singleton.loadCurrentNightscoutData() - - let entry = NightscoutDataEntry( - date: Date(timeIntervalSince1970: data.time.doubleValue / 1000), - sgv: data.sgv, - bgdeltaString: data.bgdeltaString, - bgdeltaArrow: data.bgdeltaArrow, - bgdelta: data.bgdelta, - time: data.time, - battery: data.battery, - iob: data.iob, - cob: data.cob, - configuration: configuration) - - return entry - } -} - -struct NightscoutDataEntry: TimelineEntry { - - var date: Date = Date() - - var sgv : String = "---" - // the delta Value in Display Units - var bgdeltaString : String = "---" - var bgdeltaArrow : String = "-" - // the delta value in mgdl - var bgdelta : Float = 0.0 - var hourAndMinutes : String { - get { - if time == 0 { - return "??:??" - } - let formatter = DateFormatter() - formatter.dateFormat = "HH:mm" - - let date = Date.init(timeIntervalSince1970: Double(time.int64Value / 1000)) - return formatter.string(from: date) - } - } - var timeString : String { - get { - if time == 0 { - return "-min" - } - - // trick: when displaying the time, we'll add 30 seconds to current time for showing the difference like Nightscout does (0-30 seconds: "0 mins", 31-90 seconds: "1 min", ...) - let thirtySeconds = Int64(30 * 1000) - - // calculate how old the current data is - let currentTime = Int64(Date().timeIntervalSince1970 * 1000) + thirtySeconds - let difference = (currentTime - time.int64Value) / 60000 - if difference > 59 { - return ">1Hr" - } - return String(difference) + "min" - } - } - var time : NSNumber = 0 - var battery : String = "---" - var iob : String = "" - var cob : String = "" - let configuration: ConfigurationIntent -} - struct nightguard_Widget_ExtensionEntryView : View { @Environment(\.widgetFamily) var widgetFamily - var entry: Provider.Entry + var entry: NightscoutDataEntry var body: some View { switch widgetFamily { case .accessoryInline: - Text("| \(Date(timeIntervalSince1970: entry.time.doubleValue / 1000).toLocalTimeString()) " + "\(UnitsConverter.mgdlToDisplayUnits(entry.sgv))\(UnitsConverter.mgdlToDisplayUnits(entry.bgdeltaString))\(entry.bgdeltaArrow)") + AccessoryInlineView(entry: entry) case .accessoryRectangular: - VStack(alignment: .leading) { - Text(Date(timeIntervalSince1970: entry.time.doubleValue / 1000), style: .relative) - Text("\(UnitsConverter.mgdlToDisplayUnits(entry.sgv))\(UnitsConverter.mgdlToDisplayUnits(entry.bgdeltaString))\(entry.bgdeltaArrow)") - Text("\(entry.cob) \(entry.iob)") - } + AccessoryRectangularView(entry: entry) case .accessoryCircular: VStack { Text(Date(timeIntervalSince1970: entry.time.doubleValue / 1000).toLocalTimeString()) @@ -133,7 +41,7 @@ struct nightguard_Widget_Extension: Widget { let kind: String = "nightguard_Widget_Extension" var body: some WidgetConfiguration { - IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: Provider()) { entry in + IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: NightguardTimelineProvider()) { entry in nightguard_Widget_ExtensionEntryView(entry: entry) } .configurationDisplayName("nightguard widgets") diff --git a/nightguard.xcodeproj/project.pbxproj b/nightguard.xcodeproj/project.pbxproj index cdc10881..fdc4de46 100644 --- a/nightguard.xcodeproj/project.pbxproj +++ b/nightguard.xcodeproj/project.pbxproj @@ -122,7 +122,6 @@ 43647BEE1BFF6435004389F9 /* NightguardUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43647BED1BFF6435004389F9 /* NightguardUITests.swift */; }; 43647BF31BFF6435004389F9 /* nightguard.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 43647BF21BFF6435004389F9 /* nightguard.app */; }; 43647BF91BFF6435004389F9 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 43647BF71BFF6435004389F9 /* Interface.storyboard */; }; - 43647C021BFF6435004389F9 /* nightguard.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 43647C011BFF6435004389F9 /* nightguard.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 43647C0B1BFF6435004389F9 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43647C0A1BFF6435004389F9 /* ExtensionDelegate.swift */; }; 43647C0D1BFF6435004389F9 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43647C0C1BFF6435004389F9 /* NotificationController.swift */; }; 43647C0F1BFF6435004389F9 /* ComplicationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43647C0E1BFF6435004389F9 /* ComplicationController.swift */; }; @@ -242,6 +241,43 @@ 43CC9DFB24E819C60008F397 /* Care.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 43CC9DFD24E819C60008F397 /* Care.storyboard */; }; 43CE59AA25080D6B00D71B77 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CE59A925080D6A00D71B77 /* MainView.swift */; }; 43CE59AC250813D700D71B77 /* MainController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43CE59AB250813D700D71B77 /* MainController.swift */; }; + 43D005D029DC9BFB003BCE92 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 438DAC7C28D2356800FBF520 /* WidgetKit.framework */; }; + 43D005D129DC9BFB003BCE92 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 438DAC7E28D2356800FBF520 /* SwiftUI.framework */; }; + 43D005D429DC9BFB003BCE92 /* nightguard_Complication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005D329DC9BFB003BCE92 /* nightguard_Complication.swift */; }; + 43D005D729DC9BFC003BCE92 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 43D005D629DC9BFC003BCE92 /* Assets.xcassets */; }; + 43D005D929DC9BFC003BCE92 /* nightguard_Complication.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 43D005D529DC9BFB003BCE92 /* nightguard_Complication.intentdefinition */; }; + 43D005DA29DC9BFC003BCE92 /* nightguard_Complication.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 43D005D529DC9BFB003BCE92 /* nightguard_Complication.intentdefinition */; }; + 43D005E629DC9CBF003BCE92 /* AccessoryRectangularView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005E229DC9CBF003BCE92 /* AccessoryRectangularView.swift */; }; + 43D005E729DC9CBF003BCE92 /* AccessoryInlineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005E329DC9CBF003BCE92 /* AccessoryInlineView.swift */; }; + 43D005E829DC9CBF003BCE92 /* NightguardTimelineProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005E429DC9CBF003BCE92 /* NightguardTimelineProvider.swift */; }; + 43D005E929DC9CBF003BCE92 /* NightscoutDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005E529DC9CBF003BCE92 /* NightscoutDataEntry.swift */; }; + 43D005EA29DC9D14003BCE92 /* AccessoryInlineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005E329DC9CBF003BCE92 /* AccessoryInlineView.swift */; }; + 43D005EB29DC9D17003BCE92 /* AccessoryRectangularView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005E229DC9CBF003BCE92 /* AccessoryRectangularView.swift */; }; + 43D005EC29DC9D1A003BCE92 /* NightguardTimelineProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005E429DC9CBF003BCE92 /* NightguardTimelineProvider.swift */; }; + 43D005ED29DC9D1D003BCE92 /* NightscoutDataEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43D005E529DC9CBF003BCE92 /* NightscoutDataEntry.swift */; }; + 43D005EE29DC9D54003BCE92 /* UnitsConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432E62E81D143CF900DD7978 /* UnitsConverter.swift */; }; + 43D005EF29DC9D5B003BCE92 /* NightscoutData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43F1E0FA1D07698000C329A2 /* NightscoutData.swift */; }; + 43D005F029DC9D5F003BCE92 /* TimeService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43F1E11A1D076D9700C329A2 /* TimeService.swift */; }; + 43D005F129DC9D65003BCE92 /* DeviceStatusData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4303406824C9FF330088AB9A /* DeviceStatusData.swift */; }; + 43D005F229DC9D68003BCE92 /* TemporaryTargetData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43BB4B0424CF5DBA00DE96BB /* TemporaryTargetData.swift */; }; + 43D005F329DC9DCA003BCE92 /* Units.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432E62DE1D10ACD200DD7978 /* Units.swift */; }; + 43D005F429DC9DD0003BCE92 /* BloodSugar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43F1E0EC1D07693300C329A2 /* BloodSugar.swift */; }; + 43D005F529DC9DDA003BCE92 /* DateExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4334D97F24C32B6D00652D87 /* DateExtension.swift */; }; + 43D005F629DC9DDE003BCE92 /* FloatExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432E62EA1D15EFC600DD7978 /* FloatExtension.swift */; }; + 43D005F729DC9DE4003BCE92 /* DoubleExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43288A6F1D20284600EE3999 /* DoubleExtension.swift */; }; + 43D005F829DC9DF1003BCE92 /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1ECDA252202C8F0002BE6F9 /* UIColorExtension.swift */; }; + 43D005F929DC9DF9003BCE92 /* TimerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D112DD3321E9E2DF00ECFB5E /* TimerExtension.swift */; }; + 43D005FA29DC9EC6003BCE92 /* AnyConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1AEFED721FE00A200821DF6 /* AnyConvertible.swift */; }; + 43D005FB29DC9EED003BCE92 /* Treatment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4302C65625D9C7080052777F /* Treatment.swift */; }; + 43D005FC29DC9F80003BCE92 /* NightscoutDataRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43794F451C303E4200DB8B58 /* NightscoutDataRepository.swift */; }; + 43D005FD29DC9F97003BCE92 /* UserDefaultsRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43794F4E1C343B9800DB8B58 /* UserDefaultsRepository.swift */; }; + 43D005FE29DC9FA0003BCE92 /* Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1E6B896219C69D9007ED4FE /* Helpers.swift */; }; + 43D005FF29DC9FE7003BCE92 /* UserDefaultsValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1D96CB021F85BC70035A60E /* UserDefaultsValue.swift */; }; + 43D0060029DC9FEF003BCE92 /* AppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43794F411C2F435A00DB8B58 /* AppConstants.swift */; }; + 43D0060129DC9FFC003BCE92 /* UserDefaultsValueGroups.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15055AB2200CD6500F31C1F /* UserDefaultsValueGroups.swift */; }; + 43D0060229DCA002003BCE92 /* ObservationToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1ECDA1E2201075B002BE6F9 /* ObservationToken.swift */; }; + 43D0060D29DE0389003BCE92 /* nightguard.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 43647C011BFF6435004389F9 /* nightguard.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 43D0061529DE0881003BCE92 /* nightguard ComplicationExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 43D005CF29DC9BFA003BCE92 /* nightguard ComplicationExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 43D213641C2214D60046C52D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 43D213631C2214D60046C52D /* Assets.xcassets */; }; 43D28A0620321AAF003859DE /* AlarmRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43F1E0EB1D07693300C329A2 /* AlarmRule.swift */; }; 43D561172468201E00B52B1C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 28B03A3523F9CD8E000939E6 /* Localizable.strings */; }; @@ -415,34 +451,30 @@ remoteGlobalIDString = 43647BF11BFF6435004389F9; remoteInfo = "scoutwatch WatchKit App"; }; - 43647C031BFF6435004389F9 /* PBXContainerItemProxy */ = { + 438DAC8928D2356A00FBF520 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 43647BC21BFF6435004389F9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 438DAC7A28D2356800FBF520; + remoteInfo = "nightguard Widget ExtensionExtension"; + }; + 43D0060E29DE0389003BCE92 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 43647BC21BFF6435004389F9 /* Project object */; proxyType = 1; remoteGlobalIDString = 43647C001BFF6435004389F9; - remoteInfo = "scoutwatch WatchKit Extension"; + remoteInfo = "nightguard WatchKit Extension"; }; - 438DAC8928D2356A00FBF520 /* PBXContainerItemProxy */ = { + 43D0061629DE0881003BCE92 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 43647BC21BFF6435004389F9 /* Project object */; proxyType = 1; - remoteGlobalIDString = 438DAC7A28D2356800FBF520; - remoteInfo = "nightguard Widget ExtensionExtension"; + remoteGlobalIDString = 43D005CE29DC9BFA003BCE92; + remoteInfo = "nightguard ComplicationExtension"; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 43647C181BFF6435004389F9 /* Embed App Extensions */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 43647C021BFF6435004389F9 /* nightguard.appex in Embed App Extensions */, - ); - name = "Embed App Extensions"; - runOnlyForDeploymentPostprocessing = 0; - }; 43647C1C1BFF6435004389F9 /* Embed Watch Content */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -465,6 +497,18 @@ name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; }; + 43D0061029DE0389003BCE92 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 43D0061529DE0881003BCE92 /* nightguard ComplicationExtension.appex in Embed Foundation Extensions */, + 43D0060D29DE0389003BCE92 /* nightguard.appex in Embed Foundation Extensions */, + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -596,6 +640,15 @@ 43CC9E0124E819D30008F397 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Care.strings; sourceTree = ""; }; 43CE59A925080D6A00D71B77 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = ""; }; 43CE59AB250813D700D71B77 /* MainController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainController.swift; sourceTree = ""; }; + 43D005CF29DC9BFA003BCE92 /* nightguard ComplicationExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "nightguard ComplicationExtension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 43D005D329DC9BFB003BCE92 /* nightguard_Complication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = nightguard_Complication.swift; sourceTree = ""; }; + 43D005D529DC9BFB003BCE92 /* nightguard_Complication.intentdefinition */ = {isa = PBXFileReference; lastKnownFileType = file.intentdefinition; path = nightguard_Complication.intentdefinition; sourceTree = ""; }; + 43D005D629DC9BFC003BCE92 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 43D005D829DC9BFC003BCE92 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 43D005E229DC9CBF003BCE92 /* AccessoryRectangularView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccessoryRectangularView.swift; sourceTree = ""; }; + 43D005E329DC9CBF003BCE92 /* AccessoryInlineView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccessoryInlineView.swift; sourceTree = ""; }; + 43D005E429DC9CBF003BCE92 /* NightguardTimelineProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NightguardTimelineProvider.swift; sourceTree = ""; }; + 43D005E529DC9CBF003BCE92 /* NightscoutDataEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NightscoutDataEntry.swift; sourceTree = ""; }; 43D213631C2214D60046C52D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 43E89E561E659102005B0A65 /* ChartScene.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartScene.swift; sourceTree = ""; }; 43E9F70127386C9900C6AEB3 /* UIImageExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIImageExtension.swift; sourceTree = ""; }; @@ -742,6 +795,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 43D005CC29DC9BFA003BCE92 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 43D005D129DC9BFB003BCE92 /* SwiftUI.framework in Frameworks */, + 43D005D029DC9BFB003BCE92 /* WidgetKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 81615C31F20A3DB028BE7BC8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -855,6 +917,7 @@ 43647BF61BFF6435004389F9 /* nightguard WatchKit App */, 43647C051BFF6435004389F9 /* nightguard WatchKit Extension */, 438DAC8028D2356800FBF520 /* nightguard Widget Extension */, + 43D005D229DC9BFB003BCE92 /* nightguard Complication */, 43647BCB1BFF6435004389F9 /* Products */, 0CC6802B2D6E9F7675874CD7 /* Pods */, 23C80CA818186A7AFE1C1929 /* Frameworks */, @@ -870,6 +933,7 @@ 43647BF21BFF6435004389F9 /* nightguard.app */, 43647C011BFF6435004389F9 /* nightguard.appex */, 438DAC7B28D2356800FBF520 /* nightguard Widget Extension.appex */, + 43D005CF29DC9BFA003BCE92 /* nightguard ComplicationExtension.appex */, ); name = Products; sourceTree = ""; @@ -996,6 +1060,10 @@ 438DAC8028D2356800FBF520 /* nightguard Widget Extension */ = { isa = PBXGroup; children = ( + 43D005E329DC9CBF003BCE92 /* AccessoryInlineView.swift */, + 43D005E229DC9CBF003BCE92 /* AccessoryRectangularView.swift */, + 43D005E429DC9CBF003BCE92 /* NightguardTimelineProvider.swift */, + 43D005E529DC9CBF003BCE92 /* NightscoutDataEntry.swift */, 438DAC8128D2356800FBF520 /* nightguard_Widget_Extension.swift */, 439CBB2028EED0880036A0E8 /* nightguard_Widget_Extension.intentdefinition */, 438DAC8428D2356A00FBF520 /* Assets.xcassets */, @@ -1065,6 +1133,17 @@ name = extensions; sourceTree = ""; }; + 43D005D229DC9BFB003BCE92 /* nightguard Complication */ = { + isa = PBXGroup; + children = ( + 43D005D329DC9BFB003BCE92 /* nightguard_Complication.swift */, + 43D005D529DC9BFB003BCE92 /* nightguard_Complication.intentdefinition */, + 43D005D629DC9BFC003BCE92 /* Assets.xcassets */, + 43D005D829DC9BFC003BCE92 /* Info.plist */, + ); + path = "nightguard Complication"; + sourceTree = ""; + }; 43F1E1181D076D2800C329A2 /* domain */ = { isa = PBXGroup; children = ( @@ -1291,13 +1370,14 @@ buildPhases = ( B20FEE793F9A474211DD6D09 /* [CP] Check Pods Manifest.lock */, 43647BF01BFF6435004389F9 /* Resources */, - 43647C181BFF6435004389F9 /* Embed App Extensions */, 81615C31F20A3DB028BE7BC8 /* Frameworks */, + 43D0061029DE0389003BCE92 /* Embed Foundation Extensions */, ); buildRules = ( ); dependencies = ( - 43647C041BFF6435004389F9 /* PBXTargetDependency */, + 43D0060F29DE0389003BCE92 /* PBXTargetDependency */, + 43D0061729DE0881003BCE92 /* PBXTargetDependency */, ); name = "nightguard WatchKit App"; productName = "scoutwatch WatchKit App"; @@ -1339,13 +1419,30 @@ productReference = 438DAC7B28D2356800FBF520 /* nightguard Widget Extension.appex */; productType = "com.apple.product-type.app-extension"; }; + 43D005CE29DC9BFA003BCE92 /* nightguard ComplicationExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 43D005E129DC9BFC003BCE92 /* Build configuration list for PBXNativeTarget "nightguard ComplicationExtension" */; + buildPhases = ( + 43D005CB29DC9BFA003BCE92 /* Sources */, + 43D005CC29DC9BFA003BCE92 /* Frameworks */, + 43D005CD29DC9BFA003BCE92 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "nightguard ComplicationExtension"; + productName = "nightguard ComplicationExtension"; + productReference = 43D005CF29DC9BFA003BCE92 /* nightguard ComplicationExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 43647BC21BFF6435004389F9 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1400; + LastSwiftUpdateCheck = 1420; LastUpgradeCheck = 1200; ORGANIZATIONNAME = private; TargetAttributes = { @@ -1394,6 +1491,9 @@ 438DAC7A28D2356800FBF520 = { CreatedOnToolsVersion = 14.0; }; + 43D005CE29DC9BFA003BCE92 = { + CreatedOnToolsVersion = 14.2; + }; }; }; buildConfigurationList = 43647BC51BFF6435004389F9 /* Build configuration list for PBXProject "nightguard" */; @@ -1417,6 +1517,7 @@ 43647BF11BFF6435004389F9 /* nightguard WatchKit App */, 43647C001BFF6435004389F9 /* nightguard WatchKit Extension */, 438DAC7A28D2356800FBF520 /* nightguard Widget Extension */, + 43D005CE29DC9BFA003BCE92 /* nightguard ComplicationExtension */, ); }; /* End PBXProject section */ @@ -1485,6 +1586,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 43D005CD29DC9BFA003BCE92 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 43D005D729DC9BFC003BCE92 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -1939,6 +2048,7 @@ 43C87AF8202F21F10000F5F6 /* SnoozeInterfaceController.swift in Sources */, 43961F86253377B900B1492B /* CancelTemporaryTargetPopupView.swift in Sources */, D133078B21C85DA800DC6879 /* ArrayExtension.swift in Sources */, + 43D005DA29DC9BFC003BCE92 /* nightguard_Complication.intentdefinition in Sources */, 4302C69425DC4F530052777F /* CorrectionBolusTreatment.swift in Sources */, 4398937D252BBFE5007A252F /* ActionButtonView.swift in Sources */, 4317703525CF273E00E8C991 /* RequestAlarmNotificationMessage.swift in Sources */, @@ -1990,6 +2100,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 43D005E629DC9CBF003BCE92 /* AccessoryRectangularView.swift in Sources */, + 43D005E729DC9CBF003BCE92 /* AccessoryInlineView.swift in Sources */, 438DACAB28D25CB000FBF520 /* QuickSnoozeOption.swift in Sources */, 438DAC9E28D25AFF00FBF520 /* Units.swift in Sources */, 438DAC9828D25A1600FBF520 /* UserDefaultsValueGroups.swift in Sources */, @@ -2008,6 +2120,7 @@ 438DACB028D25D1400FBF520 /* TimerExtension.swift in Sources */, 438DACAE28D25CDC00FBF520 /* VolumeChangeDetector.swift in Sources */, 438DAC9728D259F800FBF520 /* UserDefaultsValue.swift in Sources */, + 43D005E829DC9CBF003BCE92 /* NightguardTimelineProvider.swift in Sources */, 438DACA228D25B7B00FBF520 /* DoubleExtension.swift in Sources */, 439CBB1E28EED0880036A0E8 /* nightguard_Widget_Extension.intentdefinition in Sources */, 438DACA428D25B8D00FBF520 /* DateExtension.swift in Sources */, @@ -2015,6 +2128,7 @@ 438DAC9F28D25B2400FBF520 /* Treatment.swift in Sources */, 438DAC9A28D25A3D00FBF520 /* AppConstants.swift in Sources */, 438DACA728D25BF400FBF520 /* FloatExtension.swift in Sources */, + 43D005E929DC9CBF003BCE92 /* NightscoutDataEntry.swift in Sources */, 438DACAF28D25D0A00FBF520 /* MPVolumeViewExtension.swift in Sources */, 438DAC9928D25A2D00FBF520 /* DeviceStatusData.swift in Sources */, 438DACA028D25B3E00FBF520 /* AnyConvertible.swift in Sources */, @@ -2022,6 +2136,40 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 43D005CB29DC9BFA003BCE92 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 43D005F829DC9DF1003BCE92 /* UIColorExtension.swift in Sources */, + 43D005EB29DC9D17003BCE92 /* AccessoryRectangularView.swift in Sources */, + 43D005F529DC9DDA003BCE92 /* DateExtension.swift in Sources */, + 43D005FC29DC9F80003BCE92 /* NightscoutDataRepository.swift in Sources */, + 43D005FE29DC9FA0003BCE92 /* Helpers.swift in Sources */, + 43D005F329DC9DCA003BCE92 /* Units.swift in Sources */, + 43D005FF29DC9FE7003BCE92 /* UserDefaultsValue.swift in Sources */, + 43D005EF29DC9D5B003BCE92 /* NightscoutData.swift in Sources */, + 43D005F929DC9DF9003BCE92 /* TimerExtension.swift in Sources */, + 43D005EE29DC9D54003BCE92 /* UnitsConverter.swift in Sources */, + 43D0060129DC9FFC003BCE92 /* UserDefaultsValueGroups.swift in Sources */, + 43D005D429DC9BFB003BCE92 /* nightguard_Complication.swift in Sources */, + 43D005EA29DC9D14003BCE92 /* AccessoryInlineView.swift in Sources */, + 43D005F429DC9DD0003BCE92 /* BloodSugar.swift in Sources */, + 43D005F729DC9DE4003BCE92 /* DoubleExtension.swift in Sources */, + 43D005FD29DC9F97003BCE92 /* UserDefaultsRepository.swift in Sources */, + 43D005F629DC9DDE003BCE92 /* FloatExtension.swift in Sources */, + 43D005EC29DC9D1A003BCE92 /* NightguardTimelineProvider.swift in Sources */, + 43D005ED29DC9D1D003BCE92 /* NightscoutDataEntry.swift in Sources */, + 43D005F229DC9D68003BCE92 /* TemporaryTargetData.swift in Sources */, + 43D0060029DC9FEF003BCE92 /* AppConstants.swift in Sources */, + 43D005F029DC9D5F003BCE92 /* TimeService.swift in Sources */, + 43D005D929DC9BFC003BCE92 /* nightguard_Complication.intentdefinition in Sources */, + 43D0060229DCA002003BCE92 /* ObservationToken.swift in Sources */, + 43D005F129DC9D65003BCE92 /* DeviceStatusData.swift in Sources */, + 43D005FB29DC9EED003BCE92 /* Treatment.swift in Sources */, + 43D005FA29DC9EC6003BCE92 /* AnyConvertible.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -2040,16 +2188,21 @@ target = 43647BF11BFF6435004389F9 /* nightguard WatchKit App */; targetProxy = 43647BF41BFF6435004389F9 /* PBXContainerItemProxy */; }; - 43647C041BFF6435004389F9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 43647C001BFF6435004389F9 /* nightguard WatchKit Extension */; - targetProxy = 43647C031BFF6435004389F9 /* PBXContainerItemProxy */; - }; 438DAC8A28D2356A00FBF520 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 438DAC7A28D2356800FBF520 /* nightguard Widget Extension */; targetProxy = 438DAC8928D2356A00FBF520 /* PBXContainerItemProxy */; }; + 43D0060F29DE0389003BCE92 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 43647C001BFF6435004389F9 /* nightguard WatchKit Extension */; + targetProxy = 43D0060E29DE0389003BCE92 /* PBXContainerItemProxy */; + }; + 43D0061729DE0881003BCE92 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 43D005CE29DC9BFA003BCE92 /* nightguard ComplicationExtension */; + targetProxy = 43D0061629DE0881003BCE92 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ @@ -2225,7 +2378,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -2275,7 +2428,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; @@ -2311,7 +2464,7 @@ SWIFT_SWIFT3_OBJC_INFERENCE = Default; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 7.6; + WATCHOS_DEPLOYMENT_TARGET = 9.1; }; name = Debug; }; @@ -2342,7 +2495,7 @@ SWIFT_SWIFT3_OBJC_INFERENCE = Default; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 7.6; + WATCHOS_DEPLOYMENT_TARGET = 9.1; }; name = Release; }; @@ -2350,7 +2503,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 94B8B0F1EFDE9DF105D73C24 /* Pods-nightguard WatchKit App.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "nightguard WatchKit App/nightguard.entitlements"; @@ -2375,7 +2527,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 7.6; + WATCHOS_DEPLOYMENT_TARGET = 9.1; }; name = Debug; }; @@ -2383,7 +2535,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 8F6589EDEF5F046D589824E5 /* Pods-nightguard WatchKit App.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "nightguard WatchKit App/nightguard.entitlements"; @@ -2407,7 +2558,7 @@ SKIP_INSTALL = YES; SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = 4; - WATCHOS_DEPLOYMENT_TARGET = 7.6; + WATCHOS_DEPLOYMENT_TARGET = 9.1; }; name = Release; }; @@ -2630,6 +2781,88 @@ }; name = Release; }; + 43D005DF29DC9BFC003BCE92 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 807; + DEVELOPMENT_TEAM = BSAVUVP8PV; + GCC_C_LANGUAGE_STANDARD = gnu11; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "nightguard Complication/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "nightguard Complication"; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2023 private. All rights reserved."; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MARKETING_VERSION = 3.7.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "de.my-wan.dhe.nightguard.watchkitapp.complication"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 9.1; + }; + name = Debug; + }; + 43D005E029DC9BFC003BCE92 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 807; + DEVELOPMENT_TEAM = BSAVUVP8PV; + GCC_C_LANGUAGE_STANDARD = gnu11; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "nightguard Complication/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "nightguard Complication"; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2023 private. All rights reserved."; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MARKETING_VERSION = 3.7.4; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "de.my-wan.dhe.nightguard.watchkitapp.complication"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 9.1; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -2696,6 +2929,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 43D005E129DC9BFC003BCE92 /* Build configuration list for PBXNativeTarget "nightguard ComplicationExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 43D005DF29DC9BFC003BCE92 /* Debug */, + 43D005E029DC9BFC003BCE92 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 43647BC21BFF6435004389F9 /* Project object */; diff --git a/nightguard.xcodeproj/xcuserdata/dirk.xcuserdatad/xcschemes/nightguard WatchKit App (Complication).xcscheme b/nightguard.xcodeproj/xcuserdata/dirk.xcuserdatad/xcschemes/nightguard WatchKit App (Complication).xcscheme index 665aa055..852ad7b8 100644 --- a/nightguard.xcodeproj/xcuserdata/dirk.xcuserdatad/xcschemes/nightguard WatchKit App (Complication).xcscheme +++ b/nightguard.xcodeproj/xcuserdata/dirk.xcuserdatad/xcschemes/nightguard WatchKit App (Complication).xcscheme @@ -77,7 +77,8 @@ debugDocumentVersioning = "YES" debugServiceExtension = "internal" allowLocationSimulation = "YES" - launchAutomaticallySubstyle = "32"> + launchAutomaticallySubstyle = "32" + notificationPayloadFile = "nightguard WatchKit Extension/PushNotificationPayload.apns"> SchemeUserState + nightguard ComplicationExtension.xcscheme_^#shared#^_ + + orderHint + 12 + nightguard WatchKit App (Complication).xcscheme orderHint