Add updated articles from the local account refresher

This commit is contained in:
Maurice Parker
2020-04-26 05:35:35 -05:00
parent 6cde860701
commit d0ace82d02
3 changed files with 9 additions and 6 deletions

View File

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

View File

@@ -79,7 +79,7 @@ final class LocalAccountDelegate: AccountDelegate {
refreshProgress.addToNumberOfTasksAndRemaining(refresherWebFeeds.count)
group.enter()
refresher?.refreshFeeds(refresherWebFeeds) { _, _ in
refresher?.refreshFeeds(refresherWebFeeds) { _, _, _ in
group.leave()
}

View File

@@ -21,8 +21,9 @@ protocol LocalAccountRefresherDelegate {
final class LocalAccountRefresher {
var newArticles = Set<Article>()
var updatedArticles = Set<Article>()
var deletedArticles = Set<Article>()
private var completion: ((Set<Article>, Set<Article>) -> Void)?
private var completion: ((Set<Article>, Set<Article>, Set<Article>) -> Void)?
private var isSuspended = false
var delegate: LocalAccountRefresherDelegate?
@@ -30,9 +31,9 @@ final class LocalAccountRefresher {
return DownloadSession(delegate: self)
}()
public func refreshFeeds(_ feeds: Set<WebFeed>, completion: ((Set<Article>, Set<Article>) -> Void)? = nil) {
public func refreshFeeds(_ feeds: Set<WebFeed>, completion: ((Set<Article>, Set<Article>, Set<Article>) -> Void)? = nil) {
guard !feeds.isEmpty else {
completion?(Set<Article>(), Set<Article>())
completion?(Set<Article>(), Set<Article>(), Set<Article>())
return
}
self.completion = completion
@@ -106,6 +107,7 @@ extension LocalAccountRefresher: DownloadSessionDelegate {
if case .success(let articleChanges) = result {
self.newArticles.formUnion(articleChanges.newArticles ?? Set<Article>())
self.updatedArticles.formUnion(articleChanges.updatedArticles ?? Set<Article>())
self.deletedArticles.formUnion(articleChanges.deletedArticles ?? Set<Article>())
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<Article>()
deletedArticles = Set<Article>()