diff options
Diffstat (limited to 'Solsnu.Widget/Solsnu_Widget.swift')
| -rw-r--r-- | Solsnu.Widget/Solsnu_Widget.swift | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/Solsnu.Widget/Solsnu_Widget.swift b/Solsnu.Widget/Solsnu_Widget.swift index aeadf64..5da5621 100644 --- a/Solsnu.Widget/Solsnu_Widget.swift +++ b/Solsnu.Widget/Solsnu_Widget.swift @@ -70,16 +70,24 @@ struct Solsnu_Widget: Widget { } struct SolvervDef { - let date: Date; - let bg: String; - let sunriseTime: Date?; - let sunsetTime: Date?; + let date: Date + let bg: String + let sunriseTime: Date? + let sunsetTime: Date? + + // Cached formatter for performance + private static let timeFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.dateFormat = "HH:mm" + formatter.timeZone = TimeZone.current + return formatter + }() init(date: Date, sunriseTime: Date? = nil, sunsetTime: Date? = nil) { - self.date = date; - self.sunriseTime = sunriseTime; - self.sunsetTime = sunsetTime; - self.bg = "smallbg"; + self.date = date + self.sunriseTime = sunriseTime + self.sunsetTime = sunsetTime + self.bg = "smallbg" } init(utcString: String, sunriseTime: Date? = nil, sunsetTime: Date? = nil) { @@ -96,18 +104,12 @@ struct SolvervDef { var sunriseFormatted: String { guard let time = sunriseTime else { return "" } - let formatter = DateFormatter() - formatter.dateFormat = "HH:mm" - formatter.timeZone = TimeZone.current - return formatter.string(from: time) + return Self.timeFormatter.string(from: time) } var sunsetFormatted: String { guard let time = sunsetTime else { return "" } - let formatter = DateFormatter() - formatter.dateFormat = "HH:mm" - formatter.timeZone = TimeZone.current - return formatter.string(from: time) + return Self.timeFormatter.string(from: time) } } |
