From d0ace82d0206ace8aae61d1d355a5c50d70fda02 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Sun, 26 Apr 2020 05:35:35 -0500 Subject: [PATCH] Add updated articles from the local account refresher --- .../Account/CloudKit/CloudKitAccountDelegate.swift | 3 ++- .../Account/LocalAccount/LocalAccountDelegate.swift | 2 +- .../Account/LocalAccount/LocalAccountRefresher.swift | 10 ++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Frameworks/Account/CloudKit/CloudKitAccountDelegate.swift b/Frameworks/Account/CloudKit/CloudKitAccountDelegate.swift index 21e3d6685..77e651e61 100644 --- a/Frameworks/Account/CloudKit/CloudKitAccountDelegate.swift +++ b/Frameworks/Account/CloudKit/CloudKitAccountDelegate.swift @@ -618,8 +618,9 @@ private extension CloudKitAccountDelegate { } group.enter() - refresher.refreshFeeds(refresherWebFeeds) { refresherNewArticles, refresherDeletedArticles in + refresher.refreshFeeds(refresherWebFeeds) { refresherNewArticles, refresherUpdatedArticles, refresherDeletedArticles in newAndUpdatedArticles.formUnion(refresherNewArticles) + newAndUpdatedArticles.formUnion(refresherUpdatedArticles) deletedArticles.formUnion(refresherDeletedArticles) group.leave() } diff --git a/Frameworks/Account/LocalAccount/LocalAccountDelegate.swift b/Frameworks/Account/LocalAccount/LocalAccountDelegate.swift index 35057194a..983a068ad 100644 --- a/Frameworks/Account/LocalAccount/LocalAccountDelegate.swift +++ b/Frameworks/Account/LocalAccount/LocalAccountDelegate.swift @@ -79,7 +79,7 @@ final class LocalAccountDelegate: AccountDelegate { refreshProgress.addToNumberOfTasksAndRemaining(refresherWebFeeds.count) group.enter() - refresher?.refreshFeeds(refresherWebFeeds) { _, _ in + refresher?.refreshFeeds(refresherWebFeeds) { _, _, _ in group.leave() } diff --git a/Frameworks/Account/LocalAccount/LocalAccountRefresher.swift b/Frameworks/Account/LocalAccount/LocalAccountRefresher.swift index ccea40779..f0d870430 100644 --- a/Frameworks/Account/LocalAccount/LocalAccountRefresher.swift +++ b/Frameworks/Account/LocalAccount/LocalAccountRefresher.swift @@ -21,8 +21,9 @@ protocol LocalAccountRefresherDelegate { final class LocalAccountRefresher { var newArticles = Set
() + var updatedArticles = Set
() var deletedArticles = Set
() - private var completion: ((Set
, Set
) -> Void)? + private var completion: ((Set
, Set
, Set
) -> Void)? private var isSuspended = false var delegate: LocalAccountRefresherDelegate? @@ -30,9 +31,9 @@ final class LocalAccountRefresher { return DownloadSession(delegate: self) }() - public func refreshFeeds(_ feeds: Set, completion: ((Set
, Set
) -> Void)? = nil) { + public func refreshFeeds(_ feeds: Set, completion: ((Set
, Set
, Set
) -> Void)? = nil) { guard !feeds.isEmpty else { - completion?(Set
(), Set
()) + completion?(Set
(), Set
(), Set
()) return } self.completion = completion @@ -106,6 +107,7 @@ extension LocalAccountRefresher: DownloadSessionDelegate { if case .success(let articleChanges) = result { self.newArticles.formUnion(articleChanges.newArticles ?? Set
()) + self.updatedArticles.formUnion(articleChanges.updatedArticles ?? Set
()) self.deletedArticles.formUnion(articleChanges.deletedArticles ?? Set
()) if let httpResponse = response as? HTTPURLResponse { @@ -169,7 +171,7 @@ extension LocalAccountRefresher: DownloadSessionDelegate { } func downloadSessionDidCompleteDownloadObjects(_ downloadSession: DownloadSession) { - completion?(newArticles, deletedArticles) + completion?(newArticles, updatedArticles, deletedArticles) completion = nil newArticles = Set
() deletedArticles = Set
()