Add always on unread "filter" to Unread.

This commit is contained in:
Maurice Parker 2019-11-21 20:31:58 -06:00
parent 2d210a3f17
commit 654f40a98e
2 changed files with 16 additions and 14 deletions

View File

@ -96,8 +96,9 @@ class MasterTimelineViewController: UITableViewController, UndoableCommandRunner
case .read: case .read:
filterButton.image = AppAssets.filterInactiveImage filterButton.image = AppAssets.filterInactiveImage
coordinator.showAllArticles() coordinator.showAllArticles()
default: case .unavailable:
break filterButton.image = AppAssets.filterActiveImage
coordinator.refreshTimeline()
} }
} }
@ -494,13 +495,9 @@ private extension MasterTimelineViewController {
switch coordinator.articleReadFilter { switch coordinator.articleReadFilter {
case .none: case .none:
filterButton.isHidden = false
filterButton.image = AppAssets.filterInactiveImage filterButton.image = AppAssets.filterInactiveImage
case .read:
filterButton.isHidden = false
filterButton.image = AppAssets.filterActiveImage
default: default:
filterButton.isHidden = true filterButton.image = AppAssets.filterActiveImage
} }
tableView.selectRow(at: nil, animated: false, scrollPosition: .top) tableView.selectRow(at: nil, animated: false, scrollPosition: .top)

View File

@ -379,7 +379,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
@objc func containerChildrenDidChange(_ note: Notification) { @objc func containerChildrenDidChange(_ note: Notification) {
if timelineFetcherContainsAnyPseudoFeed() || timelineFetcherContainsAnyFolder() { if timelineFetcherContainsAnyPseudoFeed() || timelineFetcherContainsAnyFolder() {
fetchAndReplaceArticlesAsync() {} refreshTimeline()
} }
rebuildBackingStores() rebuildBackingStores()
} }
@ -395,6 +395,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
@objc func accountStateDidChange(_ note: Notification) { @objc func accountStateDidChange(_ note: Notification) {
if timelineFetcherContainsAnyPseudoFeed() { if timelineFetcherContainsAnyPseudoFeed() {
fetchAndReplaceArticlesAsync { fetchAndReplaceArticlesAsync {
self.masterTimelineViewController?.reinitializeArticles()
self.rebuildBackingStores() self.rebuildBackingStores()
} }
} else { } else {
@ -405,6 +406,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
@objc func userDidAddAccount(_ note: Notification) { @objc func userDidAddAccount(_ note: Notification) {
if timelineFetcherContainsAnyPseudoFeed() { if timelineFetcherContainsAnyPseudoFeed() {
fetchAndReplaceArticlesAsync { fetchAndReplaceArticlesAsync {
self.masterTimelineViewController?.reinitializeArticles()
self.rebuildBackingStores() self.rebuildBackingStores()
} }
} else { } else {
@ -415,6 +417,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
@objc func userDidDeleteAccount(_ note: Notification) { @objc func userDidDeleteAccount(_ note: Notification) {
if timelineFetcherContainsAnyPseudoFeed() { if timelineFetcherContainsAnyPseudoFeed() {
fetchAndReplaceArticlesAsync { fetchAndReplaceArticlesAsync {
self.masterTimelineViewController?.reinitializeArticles()
self.rebuildBackingStores() self.rebuildBackingStores()
} }
} else { } else {
@ -462,6 +465,12 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
return 0 return 0
} }
func refreshTimeline() {
fetchAndReplaceArticlesAsync() {
self.masterTimelineViewController?.reinitializeArticles()
}
}
func showAllFeeds() { func showAllFeeds() {
treeControllerDelegate.isUnreadFiltered = false treeControllerDelegate.isUnreadFiltered = false
rebuildBackingStores() rebuildBackingStores()
@ -474,16 +483,12 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
func showAllArticles() { func showAllArticles() {
articleReadFilter = .none articleReadFilter = .none
fetchAndReplaceArticlesAsync { refreshTimeline()
self.rebuildBackingStores()
}
} }
func hideUnreadArticles() { func hideUnreadArticles() {
articleReadFilter = .read articleReadFilter = .read
fetchAndReplaceArticlesAsync { refreshTimeline()
self.rebuildBackingStores()
}
} }
func expand(_ node: Node) { func expand(_ node: Node) {