Include updated articles in those being synced

This commit is contained in:
Maurice Parker 2020-04-26 05:05:26 -05:00
parent cf2bed1e69
commit 6cde860701
2 changed files with 24 additions and 12 deletions

View File

@ -572,7 +572,7 @@ private extension CloudKitAccountDelegate {
func combinedRefresh(_ account: Account, _ webFeeds: Set<WebFeed>, completion: @escaping () -> Void) { func combinedRefresh(_ account: Account, _ webFeeds: Set<WebFeed>, completion: @escaping () -> Void) {
var newArticles = Set<Article>() var newAndUpdatedArticles = Set<Article>()
var deletedArticles = Set<Article>() var deletedArticles = Set<Article>()
var refresherWebFeeds = Set<WebFeed>() var refresherWebFeeds = Set<WebFeed>()
@ -591,7 +591,8 @@ private extension CloudKitAccountDelegate {
switch result { switch result {
case .success(let articleChanges): case .success(let articleChanges):
newArticles.formUnion(articleChanges.newArticles ?? Set<Article>()) newAndUpdatedArticles.formUnion(articleChanges.newArticles ?? Set<Article>())
newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set<Article>())
deletedArticles.formUnion(articleChanges.deletedArticles ?? Set<Article>()) deletedArticles.formUnion(articleChanges.deletedArticles ?? Set<Article>())
self.refreshProgress.completeTask() self.refreshProgress.completeTask()
@ -618,7 +619,7 @@ private extension CloudKitAccountDelegate {
group.enter() group.enter()
refresher.refreshFeeds(refresherWebFeeds) { refresherNewArticles, refresherDeletedArticles in refresher.refreshFeeds(refresherWebFeeds) { refresherNewArticles, refresherDeletedArticles in
newArticles.formUnion(refresherNewArticles) newAndUpdatedArticles.formUnion(refresherNewArticles)
deletedArticles.formUnion(refresherDeletedArticles) deletedArticles.formUnion(refresherDeletedArticles)
group.leave() group.leave()
} }
@ -627,7 +628,7 @@ private extension CloudKitAccountDelegate {
self.articlesZone.deleteArticles(deletedArticles) { _ in self.articlesZone.deleteArticles(deletedArticles) { _ in
self.refreshProgress.completeTask() self.refreshProgress.completeTask()
self.articlesZone.saveNewArticles(newArticles) { _ in self.articlesZone.saveNewArticles(newAndUpdatedArticles) { _ in
self.refreshProgress.completeTask() self.refreshProgress.completeTask()
completion() completion()
} }
@ -671,12 +672,13 @@ private extension CloudKitAccountDelegate {
switch result { switch result {
case .success(let articleChanges): case .success(let articleChanges):
let newArticles = articleChanges.newArticles ?? Set<Article>() var newAndUpdatedArticles = articleChanges.newArticles ?? Set<Article>()
newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set<Article>())
let deletedArticles = articleChanges.deletedArticles ?? Set<Article>() let deletedArticles = articleChanges.deletedArticles ?? Set<Article>()
self.articlesZone.deleteArticles(deletedArticles) { _ in self.articlesZone.deleteArticles(deletedArticles) { _ in
self.refreshProgress.completeTask() self.refreshProgress.completeTask()
self.articlesZone.saveNewArticles(newArticles) { _ in self.articlesZone.saveNewArticles(newAndUpdatedArticles) { _ in
self.refreshProgress.clear() self.refreshProgress.clear()
completion(.success(feed)) completion(.success(feed))
} }
@ -750,12 +752,13 @@ private extension CloudKitAccountDelegate {
case .success(let articleChanges): case .success(let articleChanges):
BatchUpdate.shared.end() BatchUpdate.shared.end()
let newArticles = articleChanges.newArticles ?? Set<Article>() var newAndUpdatedArticles = articleChanges.newArticles ?? Set<Article>()
newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set<Article>())
let deletedArticles = articleChanges.deletedArticles ?? Set<Article>() let deletedArticles = articleChanges.deletedArticles ?? Set<Article>()
self.articlesZone.deleteArticles(deletedArticles) { _ in self.articlesZone.deleteArticles(deletedArticles) { _ in
self.refreshProgress.completeTask() self.refreshProgress.completeTask()
self.articlesZone.saveNewArticles(newArticles) { _ in self.articlesZone.saveNewArticles(newAndUpdatedArticles) { _ in
self.refreshProgress.clear() self.refreshProgress.clear()
completion(.success(feed)) completion(.success(feed))
} }

View File

@ -214,9 +214,13 @@ private extension CloudKitAcountZoneDelegate {
switch result { switch result {
case .success(let articleChanges): case .success(let articleChanges):
self.articlesZone?.deleteArticles(articleChanges.deletedArticles ?? Set<Article>()) { _ in var newAndUpdatedArticles = articleChanges.newArticles ?? Set<Article>()
newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set<Article>())
let deletedArticles = articleChanges.deletedArticles ?? Set<Article>()
self.articlesZone?.deleteArticles(deletedArticles) { _ in
self.refreshProgress?.completeTask() self.refreshProgress?.completeTask()
self.articlesZone?.saveNewArticles(articleChanges.newArticles ?? Set<Article>()) { _ in self.articlesZone?.saveNewArticles(newAndUpdatedArticles) { _ in
self.refreshProgress?.completeTask() self.refreshProgress?.completeTask()
completion(webFeed) completion(webFeed)
} }
@ -251,9 +255,14 @@ private extension CloudKitAcountZoneDelegate {
BatchUpdate.shared.end() BatchUpdate.shared.end()
switch result { switch result {
case .success(let articleChanges): case .success(let articleChanges):
self.articlesZone?.deleteArticles(articleChanges.deletedArticles ?? Set<Article>()) { _ in
var newAndUpdatedArticles = articleChanges.newArticles ?? Set<Article>()
newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set<Article>())
let deletedArticles = articleChanges.deletedArticles ?? Set<Article>()
self.articlesZone?.deleteArticles(deletedArticles) { _ in
self.refreshProgress?.completeTask() self.refreshProgress?.completeTask()
self.articlesZone?.saveNewArticles(articleChanges.newArticles ?? Set<Article>()) { _ in self.articlesZone?.saveNewArticles(newAndUpdatedArticles) { _ in
self.refreshProgress?.completeTask() self.refreshProgress?.completeTask()
completion(webFeed) completion(webFeed)
} }