// // ComplicationController.swift // Switch WatchKit Extension // // Created by Within on 2019-09-21. // Copyright © 2019 Within. All rights reserved. // import WatchKit class ComplicationController: NSObject, CLKComplicationDataSource { func getSupportedTimeTravelDirections(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimeTravelDirections) -> Void) { handler([]) } func getTimelineStartDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) { handler(nil) } func getTimelineEndDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) { handler(nil) } func getPrivacyBehavior(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationPrivacyBehavior) -> Void) { handler(.showOnLockScreen) } // MARK: - Timeline Population func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) { NSLog("get current timeline entry") // Call the handler with the current timeline entry if (complication.family == .graphicCorner) { getFront() { front in handler(self.getEntryForGraphicCorner(front)) } } else { handler(nil) } } func getTimelineEntries(for complication: CLKComplication, before date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) { // Call the handler with the timeline entries prior to the given date handler(nil) } func getTimelineEntries(for complication: CLKComplication, after date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) { // Call the handler with the timeline entries after to the given date handler(nil) } func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) { NSLog("get sample template") // This method will be called once per supported complication, and the results will be cached if (complication.family == .graphicCorner) { handler(self.getTemplateForGraphicCorner("Example")) } else { handler(nil) } } func getEntryForGraphicCorner(_ front: String) -> CLKComplicationTimelineEntry { let gc = getTemplateForGraphicCorner(front) return CLKComplicationTimelineEntry(date: Date(), complicationTemplate: gc) } func getTemplateForGraphicCorner(_ front: String) -> CLKComplicationTemplateGraphicCornerStackText { let gc = CLKComplicationTemplateGraphicCornerStackText() let text = CLKSimpleTextProvider() text.text = front text.shortText = "" text.tintColor = UIColor.white gc.innerTextProvider = text return gc; } }