Modify CloudKit add logic so that we don't wait to sync the statuses before completing the process. Fixes #2827
This commit is contained in:
parent
b0a1183e11
commit
e3d51635b8
@ -636,7 +636,9 @@ private extension CloudKitAccountDelegate {
|
|||||||
account.update(urlString, with: parsedItems) { result in
|
account.update(urlString, with: parsedItems) { result in
|
||||||
switch result {
|
switch result {
|
||||||
case .success:
|
case .success:
|
||||||
self.sendNewArticlesToTheCloud(account, feed, completion: completion)
|
self.sendNewArticlesToTheCloud(account, feed)
|
||||||
|
self.refreshProgress.clear()
|
||||||
|
completion(.success(feed))
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
self.refreshProgress.completeTasks(2)
|
self.refreshProgress.completeTasks(2)
|
||||||
completion(.failure(error))
|
completion(.failure(error))
|
||||||
@ -708,7 +710,9 @@ private extension CloudKitAccountDelegate {
|
|||||||
switch result {
|
switch result {
|
||||||
case .success(let externalID):
|
case .success(let externalID):
|
||||||
feed.externalID = externalID
|
feed.externalID = externalID
|
||||||
self.sendNewArticlesToTheCloud(account, feed, completion: completion)
|
self.sendNewArticlesToTheCloud(account, feed)
|
||||||
|
self.refreshProgress.clear()
|
||||||
|
completion(.success(feed))
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
container.removeWebFeed(feed)
|
container.removeWebFeed(feed)
|
||||||
self.refreshProgress.completeTasks(2)
|
self.refreshProgress.completeTasks(2)
|
||||||
@ -740,7 +744,7 @@ private extension CloudKitAccountDelegate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func sendNewArticlesToTheCloud(_ account: Account, _ feed: WebFeed, completion: @escaping (Result<WebFeed, Error>) -> Void) {
|
func sendNewArticlesToTheCloud(_ account: Account, _ feed: WebFeed) {
|
||||||
account.fetchArticlesAsync(.webFeed(feed)) { result in
|
account.fetchArticlesAsync(.webFeed(feed)) { result in
|
||||||
switch result {
|
switch result {
|
||||||
case .success(let articles):
|
case .success(let articles):
|
||||||
@ -749,19 +753,14 @@ private extension CloudKitAccountDelegate {
|
|||||||
self.sendArticleStatus(for: account, showProgress: true) { result in
|
self.sendArticleStatus(for: account, showProgress: true) { result in
|
||||||
switch result {
|
switch result {
|
||||||
case .success:
|
case .success:
|
||||||
self.articlesZone.fetchChangesInZone() { _ in
|
self.articlesZone.fetchChangesInZone() { _ in }
|
||||||
self.refreshProgress.completeTask()
|
|
||||||
completion(.success(feed))
|
|
||||||
}
|
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
self.refreshProgress.clear()
|
os_log(.error, log: self.log, "CloudKit Feed send articles error: %@.", error.localizedDescription)
|
||||||
completion(.failure(error))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
self.refreshProgress.clear()
|
os_log(.error, log: self.log, "CloudKit Feed send articles error: %@.", error.localizedDescription)
|
||||||
completion(.failure(error))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user