Merge pull request #2619 from stuartbreckenridge/widget-layout-fix

timeline refresh can now be controlled
This commit is contained in:
Maurice Parker 2020-11-30 12:57:31 -06:00 committed by GitHub
commit ae41a84114
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 16 deletions

View File

@ -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,8 +83,10 @@ struct WidgetDataEncoder {
}
if FileManager.default.createFile(atPath: dataURL!.path, contents: encodedData, attributes: nil) {
os_log(.debug, log: log, "Wrote widget data to container.")
if refreshTimeline == true {
WidgetCenter.shared.reloadAllTimelines()
}
}
} catch {
os_log(.error, "%@", error.localizedDescription)
}

View File

@ -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
}
.widgetURL(WidgetDeepLink.icon.url)
}
@ViewBuilder

View File

@ -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)
}
}

View File

@ -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)
}
}

View File

@ -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)
}
}

View File

@ -116,7 +116,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
#endif
if #available(iOS 14, *) {
WidgetDataEncoder.encodeWidgetData()
WidgetDataEncoder.encodeWidgetData(refreshTimeline: false)
}