From 6cde860701e547cfc702af41baba727dac3d5eaf Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Sun, 26 Apr 2020 05:05:26 -0500 Subject: [PATCH] Include updated articles in those being synced --- .../CloudKit/CloudKitAccountDelegate.swift | 19 +++++++++++-------- .../CloudKitAccountZoneDelegate.swift | 17 +++++++++++++---- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/Frameworks/Account/CloudKit/CloudKitAccountDelegate.swift b/Frameworks/Account/CloudKit/CloudKitAccountDelegate.swift index 8458f5b70..21e3d6685 100644 --- a/Frameworks/Account/CloudKit/CloudKitAccountDelegate.swift +++ b/Frameworks/Account/CloudKit/CloudKitAccountDelegate.swift @@ -572,7 +572,7 @@ private extension CloudKitAccountDelegate { func combinedRefresh(_ account: Account, _ webFeeds: Set, completion: @escaping () -> Void) { - var newArticles = Set
() + var newAndUpdatedArticles = Set
() var deletedArticles = Set
() var refresherWebFeeds = Set() @@ -591,7 +591,8 @@ private extension CloudKitAccountDelegate { switch result { case .success(let articleChanges): - newArticles.formUnion(articleChanges.newArticles ?? Set
()) + newAndUpdatedArticles.formUnion(articleChanges.newArticles ?? Set
()) + newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set
()) deletedArticles.formUnion(articleChanges.deletedArticles ?? Set
()) self.refreshProgress.completeTask() @@ -618,7 +619,7 @@ private extension CloudKitAccountDelegate { group.enter() refresher.refreshFeeds(refresherWebFeeds) { refresherNewArticles, refresherDeletedArticles in - newArticles.formUnion(refresherNewArticles) + newAndUpdatedArticles.formUnion(refresherNewArticles) deletedArticles.formUnion(refresherDeletedArticles) group.leave() } @@ -627,7 +628,7 @@ private extension CloudKitAccountDelegate { self.articlesZone.deleteArticles(deletedArticles) { _ in self.refreshProgress.completeTask() - self.articlesZone.saveNewArticles(newArticles) { _ in + self.articlesZone.saveNewArticles(newAndUpdatedArticles) { _ in self.refreshProgress.completeTask() completion() } @@ -671,12 +672,13 @@ private extension CloudKitAccountDelegate { switch result { case .success(let articleChanges): - let newArticles = articleChanges.newArticles ?? Set
() + var newAndUpdatedArticles = articleChanges.newArticles ?? Set
() + newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set
()) let deletedArticles = articleChanges.deletedArticles ?? Set
() self.articlesZone.deleteArticles(deletedArticles) { _ in self.refreshProgress.completeTask() - self.articlesZone.saveNewArticles(newArticles) { _ in + self.articlesZone.saveNewArticles(newAndUpdatedArticles) { _ in self.refreshProgress.clear() completion(.success(feed)) } @@ -750,12 +752,13 @@ private extension CloudKitAccountDelegate { case .success(let articleChanges): BatchUpdate.shared.end() - let newArticles = articleChanges.newArticles ?? Set
() + var newAndUpdatedArticles = articleChanges.newArticles ?? Set
() + newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set
()) let deletedArticles = articleChanges.deletedArticles ?? Set
() self.articlesZone.deleteArticles(deletedArticles) { _ in self.refreshProgress.completeTask() - self.articlesZone.saveNewArticles(newArticles) { _ in + self.articlesZone.saveNewArticles(newAndUpdatedArticles) { _ in self.refreshProgress.clear() completion(.success(feed)) } diff --git a/Frameworks/Account/CloudKit/CloudKitAccountZoneDelegate.swift b/Frameworks/Account/CloudKit/CloudKitAccountZoneDelegate.swift index 50b383489..e6f3f6374 100644 --- a/Frameworks/Account/CloudKit/CloudKitAccountZoneDelegate.swift +++ b/Frameworks/Account/CloudKit/CloudKitAccountZoneDelegate.swift @@ -214,9 +214,13 @@ private extension CloudKitAcountZoneDelegate { switch result { case .success(let articleChanges): - self.articlesZone?.deleteArticles(articleChanges.deletedArticles ?? Set
()) { _ in + var newAndUpdatedArticles = articleChanges.newArticles ?? Set
() + newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set
()) + let deletedArticles = articleChanges.deletedArticles ?? Set
() + + self.articlesZone?.deleteArticles(deletedArticles) { _ in self.refreshProgress?.completeTask() - self.articlesZone?.saveNewArticles(articleChanges.newArticles ?? Set
()) { _ in + self.articlesZone?.saveNewArticles(newAndUpdatedArticles) { _ in self.refreshProgress?.completeTask() completion(webFeed) } @@ -251,9 +255,14 @@ private extension CloudKitAcountZoneDelegate { BatchUpdate.shared.end() switch result { case .success(let articleChanges): - self.articlesZone?.deleteArticles(articleChanges.deletedArticles ?? Set
()) { _ in + + var newAndUpdatedArticles = articleChanges.newArticles ?? Set
() + newAndUpdatedArticles.formUnion(articleChanges.updatedArticles ?? Set
()) + let deletedArticles = articleChanges.deletedArticles ?? Set
() + + self.articlesZone?.deleteArticles(deletedArticles) { _ in self.refreshProgress?.completeTask() - self.articlesZone?.saveNewArticles(articleChanges.newArticles ?? Set
()) { _ in + self.articlesZone?.saveNewArticles(newAndUpdatedArticles) { _ in self.refreshProgress?.completeTask() completion(webFeed) }