diff --git a/NetNewsWire/SmartFeeds/SmartFeed.swift b/NetNewsWire/SmartFeeds/SmartFeed.swift index 76287a829..38637e008 100644 --- a/NetNewsWire/SmartFeeds/SmartFeed.swift +++ b/NetNewsWire/SmartFeeds/SmartFeed.swift @@ -12,7 +12,6 @@ import Articles import Account protocol SmartFeedDelegate: DisplayNameProvider, ArticleFetcher { - func fetchUnreadCount(for: Account, callback: @escaping (Int) -> Void) } @@ -38,21 +37,18 @@ final class SmartFeed: PseudoFeed { private var unreadCounts = [Account: Int]() init(delegate: SmartFeedDelegate) { - self.delegate = delegate NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil) queueFetchUnreadCounts() // Fetch unread count at startup } @objc func unreadCountDidChange(_ note: Notification) { - if note.object is Account { queueFetchUnreadCounts() } } @objc func fetchUnreadCounts() { - AccountManager.shared.accounts.forEach { self.fetchUnreadCount(for: $0) } } } @@ -60,12 +56,10 @@ final class SmartFeed: PseudoFeed { extension SmartFeed: ArticleFetcher { func fetchArticles() -> Set
{ - return delegate.fetchArticles() } func fetchUnreadArticles() -> Set
{ - return delegate.fetchUnreadArticles() } } @@ -73,12 +67,10 @@ extension SmartFeed: ArticleFetcher { private extension SmartFeed { func queueFetchUnreadCounts() { - CoalescingQueue.standard.add(self, #selector(fetchUnreadCounts)) } func fetchUnreadCount(for account: Account) { - delegate.fetchUnreadCount(for: account) { (accountUnreadCount) in self.unreadCounts[account] = accountUnreadCount self.updateUnreadCount() @@ -86,7 +78,6 @@ private extension SmartFeed { } func updateUnreadCount() { - unreadCount = AccountManager.shared.accounts.reduce(0) { (result, account) -> Int in if let oneUnreadCount = unreadCounts[account] { return result + oneUnreadCount