diff --git a/WatchApp Extension/ComplicationController.swift b/WatchApp Extension/ComplicationController.swift
index 4b149cabb1..d632954571 100644
--- a/WatchApp Extension/ComplicationController.swift
+++ b/WatchApp Extension/ComplicationController.swift
@@ -92,7 +92,30 @@ final class ComplicationController: NSObject, CLKComplicationDataSource {
let timeText = CLKRelativeDateTextProvider(date: Date(), style: .natural, units: .minute)
switch complication.family {
- case .graphicCorner, .graphicCircular, .graphicRectangular, .graphicBezel:
+
+ case .graphicCorner:
+ if #available(watchOSApplicationExtension 5.0, *) {
+ let cornerTemplate = CLKComplicationTemplateGraphicCornerStackText()
+ cornerTemplate.outerTextProvider = glucoseText
+ cornerTemplate.innerTextProvider = timeText
+ cornerTemplate.outerTextProvider.tintColor = .green
+ template = cornerTemplate
+ } else {
+ // Fallback on earlier versions
+ template = nil
+ }
+ case .graphicCircular:
+ if #available(watchOSApplicationExtension 5.0, *) {
+ let circularTemplate = CLKComplicationTemplateGraphicCircularOpenGaugeSimpleText()
+ circularTemplate.gaugeProvider = CLKSimpleGaugeProvider(style: .fill, gaugeColor: .green, fillFraction: 1)
+ circularTemplate.centerTextProvider = CLKSimpleTextProvider(text: "120")
+ circularTemplate.bottomTextProvider = CLKSimpleTextProvider(text: "↘︎")
+ template = circularTemplate
+ } else {
+ // Fallback on earlier versions
+ template = nil
+ }
+ case .graphicRectangular, .graphicBezel:
template = nil
case .modularSmall:
let modularSmall = CLKComplicationTemplateModularSmallStackText()
@@ -126,5 +149,6 @@ final class ComplicationController: NSObject, CLKComplicationDataSource {
template?.tintColor = UIColor.tintColor
handler(template)
+
}
}
diff --git a/WatchApp Extension/Extensions/CLKComplicationTemplate.swift b/WatchApp Extension/Extensions/CLKComplicationTemplate.swift
index 1a3e54331f..758a643f2d 100644
--- a/WatchApp Extension/Extensions/CLKComplicationTemplate.swift
+++ b/WatchApp Extension/Extensions/CLKComplicationTemplate.swift
@@ -46,8 +46,45 @@ extension CLKComplicationTemplate {
timeFormatter.dateStyle = .none
timeFormatter.timeStyle = .short
+
switch family {
- case .graphicCorner, .graphicCircular, .graphicRectangular, .graphicBezel:
+ case .graphicCorner:
+ // ***************************************
+ // ** Apple Watch Series 4 Complication **
+ // ***************************************
+ // Corner Text
+ // Outer Text: Current Glucose and Trend
+ // Inner Text: timeText
+
+ if #available(watchOSApplicationExtension 5.0, *) {
+ let cornerTemplate = CLKComplicationTemplateGraphicCornerStackText()
+ cornerTemplate.outerTextProvider = glucoseAndTrendText
+ cornerTemplate.outerTextProvider.tintColor = .green
+ cornerTemplate.innerTextProvider = timeText
+ return cornerTemplate
+ } else {
+ // Fallback on earlier versions
+ return nil
+ }
+ case .graphicCircular:
+ // ***************************************
+ // ** Apple Watch Series 4 Complication **
+ // ***************************************
+ // Circular Gauge
+ // Full Ring
+ // Current Glucose in Center, Trend Arrow Below
+ // * future enhancement - update gauge colors to reflect loop status, or time in range for the day
+ if #available(watchOSApplicationExtension 5.0, *) {
+ let circularTemplate = CLKComplicationTemplateGraphicCircularOpenGaugeSimpleText()
+ circularTemplate.gaugeProvider = CLKSimpleGaugeProvider(style: .fill, gaugeColor: .green, fillFraction: 1)
+ circularTemplate.centerTextProvider = CLKSimpleTextProvider(text: glucoseString)
+ circularTemplate.bottomTextProvider = CLKSimpleTextProvider(text: (trend?.symbol ?? " "))
+ return circularTemplate
+ } else {
+ // Fallback on earlier versions
+ return nil
+ }
+ case .graphicRectangular, .graphicBezel:
return nil
case .modularSmall:
let template = CLKComplicationTemplateModularSmallStackText()
diff --git a/WatchApp Extension/Info.plist b/WatchApp Extension/Info.plist
index 72ad48bfe9..d9ff34f6f8 100644
--- a/WatchApp Extension/Info.plist
+++ b/WatchApp Extension/Info.plist
@@ -26,13 +26,17 @@
$(PRODUCT_MODULE_NAME).ComplicationController
CLKComplicationSupportedFamilies
- CLKComplicationFamilyModularSmall
CLKComplicationFamilyCircularSmall
CLKComplicationFamilyExtraLarge
- CLKComplicationFamilyUtilitarianSmallFlat
- CLKComplicationFamilyUtilitarianLarge
+ CLKComplicationFamilyGraphicBezel
+ CLKComplicationFamilyGraphicCircular
+ CLKComplicationFamilyGraphicCorner
+ CLKComplicationFamilyGraphicRectangular
CLKComplicationFamilyModularLarge
+ CLKComplicationFamilyModularSmall
+ CLKComplicationFamilyUtilitarianLarge
CLKComplicationFamilyUtilitarianSmall
+ CLKComplicationFamilyUtilitarianSmallFlat
NSExtension