Merge pull request #2619 from stuartbreckenridge/widget-layout-fix
timeline refresh can now be controlled
This commit is contained in:
commit
ae41a84114
|
@ -18,7 +18,7 @@ struct WidgetDataEncoder {
|
|||
|
||||
private static var log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "Application")
|
||||
|
||||
static func encodeWidgetData() {
|
||||
static func encodeWidgetData(refreshTimeline: Bool = true) {
|
||||
os_log(.debug, log: log, "Starting encoding widget data.")
|
||||
do {
|
||||
// Unread Articles
|
||||
|
@ -32,6 +32,7 @@ struct WidgetDataEncoder {
|
|||
feedIcon: article.iconImage()?.image.dataRepresentation(),
|
||||
pubDate: article.datePublished!.description)
|
||||
unread.append(latestArticle)
|
||||
|
||||
if unread.count == 7 { break }
|
||||
}
|
||||
|
||||
|
@ -82,7 +83,9 @@ struct WidgetDataEncoder {
|
|||
}
|
||||
if FileManager.default.createFile(atPath: dataURL!.path, contents: encodedData, attributes: nil) {
|
||||
os_log(.debug, log: log, "Wrote widget data to container.")
|
||||
WidgetCenter.shared.reloadAllTimelines()
|
||||
if refreshTimeline == true {
|
||||
WidgetCenter.shared.reloadAllTimelines()
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
os_log(.error, "%@", error.localizedDescription)
|
||||
|
|
|
@ -17,16 +17,8 @@ struct SmartFeedSummaryWidgetView: View {
|
|||
var entry: Provider.Entry
|
||||
|
||||
var body: some View {
|
||||
switch family {
|
||||
case .systemSmall:
|
||||
smallWidget
|
||||
case .systemMedium:
|
||||
smallWidget
|
||||
case .systemLarge:
|
||||
smallWidget
|
||||
@unknown default:
|
||||
smallWidget
|
||||
}
|
||||
smallWidget
|
||||
.widgetURL(WidgetDeepLink.icon.url)
|
||||
}
|
||||
|
||||
@ViewBuilder
|
||||
|
|
|
@ -18,6 +18,7 @@ struct StarredWidgetView : View {
|
|||
var body: some View {
|
||||
if entry.widgetData.starredArticles.count == 0 {
|
||||
inboxZero
|
||||
.widgetURL(WidgetDeepLink.starred.url)
|
||||
}
|
||||
else {
|
||||
GeometryReader { metrics in
|
||||
|
@ -49,7 +50,7 @@ struct StarredWidgetView : View {
|
|||
Spacer()
|
||||
}.padding(.leading, 4)
|
||||
}.padding()
|
||||
}
|
||||
}.widgetURL(WidgetDeepLink.starred.url)
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ struct TodayWidgetView : View {
|
|||
var body: some View {
|
||||
if entry.widgetData.todayArticles.count == 0 {
|
||||
inboxZero
|
||||
.widgetURL(WidgetDeepLink.today.url)
|
||||
}
|
||||
else {
|
||||
GeometryReader { metrics in
|
||||
|
@ -50,7 +51,7 @@ struct TodayWidgetView : View {
|
|||
Spacer()
|
||||
}.padding(.leading, 4)
|
||||
}.padding()
|
||||
}
|
||||
}.widgetURL(WidgetDeepLink.today.url)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ struct UnreadWidgetView : View {
|
|||
var body: some View {
|
||||
if entry.widgetData.currentUnreadCount == 0 {
|
||||
inboxZero
|
||||
.widgetURL(WidgetDeepLink.unread.url)
|
||||
}
|
||||
else {
|
||||
GeometryReader { metrics in
|
||||
|
@ -49,7 +50,7 @@ struct UnreadWidgetView : View {
|
|||
Spacer()
|
||||
}.padding(.leading, 4)
|
||||
}.padding()
|
||||
}
|
||||
}.widgetURL(WidgetDeepLink.unread.url)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
|
|||
#endif
|
||||
|
||||
if #available(iOS 14, *) {
|
||||
WidgetDataEncoder.encodeWidgetData()
|
||||
WidgetDataEncoder.encodeWidgetData(refreshTimeline: false)
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue