mirror of
https://github.com/Ranchero-Software/NetNewsWire
synced 2025-08-12 06:26:36 +00:00
Filter async requests based on ReadFilter.
This commit is contained in:
@@ -90,7 +90,7 @@ class MasterTimelineViewController: UITableViewController, UndoableCommandRunner
|
||||
// MARK: Actions
|
||||
@IBAction func toggleFilter(_ sender: Any) {
|
||||
switch coordinator.articleReadFilter {
|
||||
case .all:
|
||||
case .none:
|
||||
filterButton.image = AppAssets.filterActiveImage
|
||||
coordinator.hideUnreadArticles()
|
||||
case .read:
|
||||
@@ -497,7 +497,7 @@ private extension MasterTimelineViewController {
|
||||
}
|
||||
|
||||
switch coordinator.articleReadFilter {
|
||||
case .all:
|
||||
case .none:
|
||||
filterButton.isHidden = false
|
||||
filterButton.image = AppAssets.filterInactiveImage
|
||||
case .read:
|
||||
@@ -548,7 +548,7 @@ private extension MasterTimelineViewController {
|
||||
self?.configure(cell, article: article)
|
||||
return cell
|
||||
})
|
||||
dataSource.defaultRowAnimation = .left
|
||||
dataSource.defaultRowAnimation = .middle
|
||||
return dataSource
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
||||
return treeControllerDelegate.isUnreadFiltered
|
||||
}
|
||||
|
||||
var articleReadFilter: ReadFilter = .all
|
||||
var articleReadFilter: ReadFilter = .none
|
||||
|
||||
var rootNode: Node {
|
||||
return treeController.rootNode
|
||||
@@ -473,11 +473,17 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
|
||||
}
|
||||
|
||||
func showAllArticles() {
|
||||
articleReadFilter = .all
|
||||
articleReadFilter = .none
|
||||
fetchAndReplaceArticlesAsync {
|
||||
self.rebuildBackingStores()
|
||||
}
|
||||
}
|
||||
|
||||
func hideUnreadArticles() {
|
||||
articleReadFilter = .read
|
||||
fetchAndReplaceArticlesAsync {
|
||||
self.rebuildBackingStores()
|
||||
}
|
||||
}
|
||||
|
||||
func expand(_ node: Node) {
|
||||
@@ -1139,7 +1145,7 @@ private extension SceneCoordinator {
|
||||
func setTimelineFeed(_ feed: Feed?, completion: (() -> Void)? = nil) {
|
||||
timelineFeed = feed
|
||||
timelineMiddleIndexPath = nil
|
||||
articleReadFilter = feed?.defaultReadFilter ?? .all
|
||||
articleReadFilter = feed?.defaultReadFilter ?? .none
|
||||
|
||||
fetchAndReplaceArticlesAsync {
|
||||
self.masterTimelineViewController?.reinitializeArticles()
|
||||
@@ -1480,7 +1486,7 @@ private extension SceneCoordinator {
|
||||
precondition(Thread.isMainThread)
|
||||
cancelPendingAsyncFetches()
|
||||
|
||||
let fetchOperation = FetchRequestOperation(id: fetchSerialNumber, representedObjects: representedObjects) { [weak self] (articles, operation) in
|
||||
let fetchOperation = FetchRequestOperation(id: fetchSerialNumber, readFilter: articleReadFilter, representedObjects: representedObjects) { [weak self] (articles, operation) in
|
||||
precondition(Thread.isMainThread)
|
||||
guard !operation.isCanceled, let strongSelf = self, operation.id == strongSelf.fetchSerialNumber else {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user