@ -0,0 +1,5 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
|||
<plist version="1.0"> |
|||
<dict/> |
|||
</plist> |
@ -0,0 +1,5 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
|||
<plist version="1.0"> |
|||
<dict/> |
|||
</plist> |
@ -0,0 +1,56 @@ |
|||
// |
|||
// ComplicationController.swift |
|||
// T WatchKit Extension |
|||
// |
|||
// Created by Marcos Rodriguez on 8/24/19. |
|||
// Copyright © 2019 Marcos Rodriguez. All rights reserved. |
|||
// |
|||
|
|||
import ClockKit |
|||
|
|||
|
|||
class ComplicationController: NSObject, CLKComplicationDataSource { |
|||
|
|||
// MARK: - Timeline Configuration |
|||
|
|||
func getSupportedTimeTravelDirections(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimeTravelDirections) -> Void) { |
|||
handler([.forward, .backward]) |
|||
} |
|||
|
|||
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) { |
|||
// Call the handler with the current timeline entry |
|||
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) |
|||
} |
|||
|
|||
// MARK: - Placeholder 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) |
|||
} |
|||
|
|||
} |
@ -0,0 +1,32 @@ |
|||
{ |
|||
"images" : [ |
|||
{ |
|||
"idiom" : "watch", |
|||
"screen-width" : "<=145", |
|||
"filename" : "circular38mm@2x.png", |
|||
"scale" : "2x" |
|||
}, |
|||
{ |
|||
"screen-width" : ">161", |
|||
"scale" : "2x", |
|||
"idiom" : "watch", |
|||
"filename" : "circular40mm@2x.png" |
|||
}, |
|||
{ |
|||
"scale" : "2x", |
|||
"idiom" : "watch", |
|||
"filename" : "circular42mm@2x.png", |
|||
"screen-width" : ">145" |
|||
}, |
|||
{ |
|||
"filename" : "circular44mm@2x.png", |
|||
"scale" : "2x", |
|||
"idiom" : "watch", |
|||
"screen-width" : ">183" |
|||
} |
|||
], |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
} |
|||
} |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,48 @@ |
|||
{ |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
}, |
|||
"assets" : [ |
|||
{ |
|||
"idiom" : "watch", |
|||
"role" : "circular", |
|||
"filename" : "Circular.imageset" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "Modular.imageset", |
|||
"role" : "modular" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "Utilitarian.imageset", |
|||
"role" : "utilitarian" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"role" : "extra-large", |
|||
"filename" : "Extra Large.imageset" |
|||
}, |
|||
{ |
|||
"role" : "graphic-corner", |
|||
"idiom" : "watch", |
|||
"filename" : "Graphic Corner.imageset" |
|||
}, |
|||
{ |
|||
"filename" : "Graphic Circular.imageset", |
|||
"role" : "graphic-circular", |
|||
"idiom" : "watch" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "Graphic Bezel.imageset", |
|||
"role" : "graphic-bezel" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"role" : "graphic-large-rectangular", |
|||
"filename" : "Graphic Large Rectangular.imageset" |
|||
} |
|||
] |
|||
} |
@ -0,0 +1,32 @@ |
|||
{ |
|||
"images" : [ |
|||
{ |
|||
"filename" : "extra-large38mm@2x.png", |
|||
"screen-width" : "<=145", |
|||
"idiom" : "watch", |
|||
"scale" : "2x" |
|||
}, |
|||
{ |
|||
"screen-width" : ">161", |
|||
"filename" : "extra-large40mm@2x.png", |
|||
"idiom" : "watch", |
|||
"scale" : "2x" |
|||
}, |
|||
{ |
|||
"screen-width" : ">145", |
|||
"idiom" : "watch", |
|||
"filename" : "extra-large42mm@2x.png", |
|||
"scale" : "2x" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : ">183", |
|||
"filename" : "extra-large44mm@2x.png" |
|||
} |
|||
], |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
} |
|||
} |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 12 KiB |
@ -0,0 +1,30 @@ |
|||
{ |
|||
"images" : [ |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : "<=145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "graphic-bezel40mm@2x.png", |
|||
"screen-width" : ">161", |
|||
"scale" : "2x" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : ">145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "graphic-bezel44mm@2x.png", |
|||
"screen-width" : ">183", |
|||
"scale" : "2x" |
|||
} |
|||
], |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
} |
|||
} |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.9 KiB |
@ -0,0 +1,30 @@ |
|||
{ |
|||
"images" : [ |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : "<=145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "graphic-circular40mm@2x.png", |
|||
"screen-width" : ">161", |
|||
"scale" : "2x" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : ">145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "graphic-circular44mm@2x.png", |
|||
"screen-width" : ">183", |
|||
"scale" : "2x" |
|||
} |
|||
], |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
} |
|||
} |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.9 KiB |
@ -0,0 +1,30 @@ |
|||
{ |
|||
"images" : [ |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : "<=145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "graphic-corner40mm@2x.png", |
|||
"screen-width" : ">161", |
|||
"scale" : "2x" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : ">145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "graphic-corner44mm@2x.png", |
|||
"screen-width" : ">183", |
|||
"scale" : "2x" |
|||
} |
|||
], |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
} |
|||
} |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.6 KiB |
@ -0,0 +1,30 @@ |
|||
{ |
|||
"images" : [ |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : "<=145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "graphic-large-rectangular40mm@2x.png", |
|||
"screen-width" : ">161", |
|||
"scale" : "2x" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : ">145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"filename" : "graphic-large-rectangular44mm@2x.png", |
|||
"screen-width" : ">183", |
|||
"scale" : "2x" |
|||
} |
|||
], |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
} |
|||
} |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 7.7 KiB |
@ -0,0 +1,32 @@ |
|||
{ |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
}, |
|||
"images" : [ |
|||
{ |
|||
"screen-width" : "<=145", |
|||
"scale" : "2x", |
|||
"idiom" : "watch", |
|||
"filename" : "modular38mm@2x.png" |
|||
}, |
|||
{ |
|||
"screen-width" : ">161", |
|||
"scale" : "2x", |
|||
"filename" : "modular40mm@2x.png", |
|||
"idiom" : "watch" |
|||
}, |
|||
{ |
|||
"scale" : "2x", |
|||
"idiom" : "watch", |
|||
"filename" : "modular42mm@2x.png", |
|||
"screen-width" : ">145" |
|||
}, |
|||
{ |
|||
"filename" : "modular44mm@2x.png", |
|||
"screen-width" : ">183", |
|||
"idiom" : "watch", |
|||
"scale" : "2x" |
|||
} |
|||
] |
|||
} |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.4 KiB |
@ -0,0 +1,32 @@ |
|||
{ |
|||
"info" : { |
|||
"version" : 1, |
|||
"author" : "xcode" |
|||
}, |
|||
"images" : [ |
|||
{ |
|||
"scale" : "2x", |
|||
"filename" : "utility38mm@2x.png", |
|||
"screen-width" : "<=145", |
|||
"idiom" : "watch" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"scale" : "2x", |
|||
"screen-width" : ">161", |
|||
"filename" : "utility40mm@2x.png" |
|||
}, |
|||
{ |
|||
"scale" : "2x", |
|||
"idiom" : "watch", |
|||
"filename" : "utility42mm@2x.png", |
|||
"screen-width" : ">145" |
|||
}, |
|||
{ |
|||
"idiom" : "watch", |
|||
"screen-width" : ">183", |
|||
"filename" : "utility44mm@2x.png", |
|||
"scale" : "2x" |
|||
} |
|||
] |
|||
} |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.0 KiB |