DFWatchFaceProvider.swift
1.04 KB
//
// DFWatchFaceProvider.swift
// hippo-watch-extension
//
import WidgetKit
struct DFWatchFaceProvider: TimelineProvider {
let face: DFWatchFaceKind
func placeholder(in context: Context) -> DFWatchFaceEntry {
DFWatchFaceEntry(date: .now, face: face, data: .placeholder, theme: nil)
}
func getSnapshot(in context: Context, completion: @escaping (DFWatchFaceEntry) -> Void) {
completion(DFWatchFaceEntry(date: .now, face: face, data: .placeholder, theme: nil))
}
func getTimeline(in context: Context, completion: @escaping (Timeline<DFWatchFaceEntry>) -> Void) {
Task {
let data = await DFWatchFaceMockService.fetch(face: face)
let theme = await DFWatchThemeStore.currentTheme()
let entry = DFWatchFaceEntry(date: .now, face: face, data: data, theme: theme)
let nextRefresh = Calendar.current.date(byAdding: .minute, value: 15, to: .now) ?? .now.addingTimeInterval(900)
completion(Timeline(entries: [entry], policy: .after(nextRefresh)))
}
}
}