Chunk the new articles in advance of sending them to the zone so that we can count them in the progress bar.
This commit is contained in:
parent
2efa939f25
commit
b168cef88b
|
@ -628,17 +628,36 @@ private extension CloudKitAccountDelegate {
|
||||||
|
|
||||||
self.articlesZone.deleteArticles(deletedArticles) { _ in
|
self.articlesZone.deleteArticles(deletedArticles) { _ in
|
||||||
self.refreshProgress.completeTask()
|
self.refreshProgress.completeTask()
|
||||||
self.articlesZone.saveNewArticles(newAndUpdatedArticles) { _ in
|
self.saveNewArticles(newAndUpdatedArticles) {
|
||||||
self.articlesZone.fetchChangesInZone() { _ in
|
completion()
|
||||||
self.refreshProgress.completeTask()
|
|
||||||
completion()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func saveNewArticles(_ articles: Set<Article>, completion: @escaping () -> Void) {
|
||||||
|
let group = DispatchGroup()
|
||||||
|
|
||||||
|
let articleGroups = Array(articles).chunked(into: 300).map { Set($0) }
|
||||||
|
refreshProgress.addToNumberOfTasksAndRemaining(articleGroups.count)
|
||||||
|
|
||||||
|
for articleGroup in articleGroups {
|
||||||
|
group.enter()
|
||||||
|
self.articlesZone.saveNewArticles(articleGroup) { _ in
|
||||||
|
self.refreshProgress.completeTask()
|
||||||
|
group.leave()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
group.notify(queue: DispatchQueue.main) {
|
||||||
|
self.articlesZone.fetchChangesInZone() { _ in
|
||||||
|
self.refreshProgress.completeTask()
|
||||||
|
completion()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func createProviderWebFeed(for account: Account, urlComponents: URLComponents, editedName: String?, container: Container, feedProvider: FeedProvider, completion: @escaping (Result<WebFeed, Error>) -> Void) {
|
func createProviderWebFeed(for account: Account, urlComponents: URLComponents, editedName: String?, container: Container, feedProvider: FeedProvider, completion: @escaping (Result<WebFeed, Error>) -> Void) {
|
||||||
refreshProgress.addToNumberOfTasksAndRemaining(5)
|
refreshProgress.addToNumberOfTasksAndRemaining(5)
|
||||||
|
|
Loading…
Reference in New Issue