Coalesce unread count backing store rebuilds to prevent feeds list flickering while syncing and the feeds filter is engaged. (Regression)
This commit is contained in:
parent
d222a9f617
commit
a4bbf65944
@ -61,6 +61,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
private var wasRootSplitViewControllerCollapsed = false
|
private var wasRootSplitViewControllerCollapsed = false
|
||||||
|
|
||||||
private let fetchAndMergeArticlesQueue = CoalescingQueue(name: "Fetch and Merge Articles", interval: 0.5)
|
private let fetchAndMergeArticlesQueue = CoalescingQueue(name: "Fetch and Merge Articles", interval: 0.5)
|
||||||
|
private let rebuildBackingStoresWithMergeQueue = CoalescingQueue(name: "Rebuild The Backing Stores by Merging", interval: 0.5)
|
||||||
private var fetchSerialNumber = 0
|
private var fetchSerialNumber = 0
|
||||||
private let fetchRequestQueue = FetchRequestQueue()
|
private let fetchRequestQueue = FetchRequestQueue()
|
||||||
|
|
||||||
@ -445,9 +446,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
addShadowTableToFilterExceptions()
|
rebuildBackingStoresWithMergeQueue.add(self, #selector(rebuildBackingStoresWithMerge))
|
||||||
rebuildBackingStores()
|
|
||||||
treeControllerDelegate.resetFilterExceptions()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc func statusesDidChange(_ note: Notification) {
|
@objc func statusesDidChange(_ note: Notification) {
|
||||||
@ -569,6 +568,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
|||||||
|
|
||||||
func suspend() {
|
func suspend() {
|
||||||
fetchAndMergeArticlesQueue.performCallsImmediately()
|
fetchAndMergeArticlesQueue.performCallsImmediately()
|
||||||
|
rebuildBackingStoresWithMergeQueue.performCallsImmediately()
|
||||||
fetchRequestQueue.cancelAllRequests()
|
fetchRequestQueue.cancelAllRequests()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1362,6 +1362,12 @@ private extension SceneCoordinator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@objc func rebuildBackingStoresWithMerge() {
|
||||||
|
addShadowTableToFilterExceptions()
|
||||||
|
rebuildBackingStores()
|
||||||
|
treeControllerDelegate.resetFilterExceptions()
|
||||||
|
}
|
||||||
|
|
||||||
func rebuildShadowTable() {
|
func rebuildShadowTable() {
|
||||||
shadowTable = [[Node]]()
|
shadowTable = [[Node]]()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user