53 lines
2.2 KiB
Swift
53 lines
2.2 KiB
Swift
import ClockKit
|
|
|
|
|
|
class ComplicationController: NSObject, CLKComplicationDataSource {
|
|
|
|
// MARK: - Complication Configuration
|
|
|
|
func getComplicationDescriptors(handler: @escaping ([CLKComplicationDescriptor]) -> Void) {
|
|
let descriptors = [
|
|
CLKComplicationDescriptor(identifier: "complication", displayName: "Bitwarden", supportedFamilies: CLKComplicationFamily.allCases)
|
|
// Multiple complication support can be added here with more descriptors
|
|
]
|
|
|
|
// Call the handler with the currently supported complication descriptors
|
|
handler(descriptors)
|
|
}
|
|
|
|
func handleSharedComplicationDescriptors(_ complicationDescriptors: [CLKComplicationDescriptor]) {
|
|
// Do any necessary work to support these newly shared complication descriptors
|
|
}
|
|
|
|
// MARK: - Timeline Configuration
|
|
|
|
func getTimelineEndDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) {
|
|
// Call the handler with the last entry date you can currently provide or nil if you can't support future timelines
|
|
handler(nil)
|
|
}
|
|
|
|
func getPrivacyBehavior(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationPrivacyBehavior) -> Void) {
|
|
// Call the handler with your desired behavior when the device is locked
|
|
handler(.showOnLockScreen)
|
|
}
|
|
|
|
// MARK: - Timeline Population
|
|
|
|
func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) {
|
|
// Call the handler with the current timeline entry
|
|
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 the given date
|
|
handler(nil)
|
|
}
|
|
|
|
// MARK: - Sample Templates
|
|
|
|
func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) {
|
|
// This method will be called once per supported complication, and the results will be cached
|
|
handler(nil)
|
|
}
|
|
}
|