Merge pull request #3907 from vincode-io/fix-bulk-marking-validations

Make bulk marking as read validations take into consideration the dir…
This commit is contained in:
Brent Simmons
2023-03-12 12:14:34 -07:00
committed by GitHub
5 changed files with 24 additions and 16 deletions

View File

@@ -678,7 +678,7 @@ private extension MasterTimelineViewController {
func updateToolbar() {
guard firstUnreadButton != nil else { return }
markAllAsReadButton.isEnabled = coordinator.isTimelineUnreadAvailable
markAllAsReadButton.isEnabled = coordinator.canMarkAllAsRead()
firstUnreadButton.isEnabled = coordinator.isTimelineUnreadAvailable
if coordinator.isRootSplitCollapsed {
@@ -875,7 +875,7 @@ private extension MasterTimelineViewController {
}
let articles = Array(fetchedArticles)
guard articles.canMarkAllAsRead(), let contentView = self.tableView.cellForRow(at: indexPath)?.contentView else {
guard coordinator.canMarkAllAsRead(articles), let contentView = self.tableView.cellForRow(at: indexPath)?.contentView else {
return nil
}
@@ -898,7 +898,7 @@ private extension MasterTimelineViewController {
}
let articles = Array(fetchedArticles)
guard articles.canMarkAllAsRead(), let contentView = self.tableView.cellForRow(at: indexPath)?.contentView else {
guard coordinator.canMarkAllAsRead(articles), let contentView = self.tableView.cellForRow(at: indexPath)?.contentView else {
return nil
}

View File

@@ -1042,10 +1042,18 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, Logging {
completion?()
}
}
func canMarkAllAsRead() -> Bool {
return articles.canMarkAllAsRead(exemptArticles: directlyMarkedAsUnreadArticles)
}
func canMarkAllAsRead(_ articles: [Article]) -> Bool {
return articles.canMarkAllAsRead(exemptArticles: directlyMarkedAsUnreadArticles)
}
func canMarkAboveAsRead(for article: Article) -> Bool {
let articlesAboveArray = articles.articlesAbove(article: article)
return articlesAboveArray.canMarkAllAsRead()
return articlesAboveArray.canMarkAllAsRead(exemptArticles: directlyMarkedAsUnreadArticles)
}
func markAboveAsRead() {
@@ -1063,7 +1071,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, Logging {
func canMarkBelowAsRead(for article: Article) -> Bool {
let articleBelowArray = articles.articlesBelow(article: article)
return articleBelowArray.canMarkAllAsRead()
return articleBelowArray.canMarkAllAsRead(exemptArticles: directlyMarkedAsUnreadArticles)
}
func markBelowAsRead() {