From cf1b3843eed42356315d484100952c5ad8d776ff Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Tue, 13 Aug 2019 20:28:28 -0700 Subject: [PATCH] Add a SmartFeedType to smart feeds so the sidebar can tell them apart. --- Mac/MainWindow/MainWindowController.swift | 2 +- Shared/SmartFeeds/SmartFeed.swift | 13 ++++++++++++- Shared/SmartFeeds/SmartFeedsController.swift | 4 ++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Mac/MainWindow/MainWindowController.swift b/Mac/MainWindow/MainWindowController.swift index bc00c98d1..2ee22c205 100644 --- a/Mac/MainWindow/MainWindowController.swift +++ b/Mac/MainWindow/MainWindowController.swift @@ -455,7 +455,7 @@ extension MainWindowController: NSSearchFieldDelegate { return } lastSentSearchString = searchString - let smartFeed = SmartFeed(delegate: SearchFeedDelegate(searchString: searchString)) + let smartFeed = SmartFeed(delegate: SearchFeedDelegate(searchString: searchString), type: .search) timelineContainerViewController?.setRepresentedObjects([smartFeed], mode: .search) searchSmartFeed = smartFeed } diff --git a/Shared/SmartFeeds/SmartFeed.swift b/Shared/SmartFeeds/SmartFeed.swift index 436198d79..2edf44938 100644 --- a/Shared/SmartFeeds/SmartFeed.swift +++ b/Shared/SmartFeeds/SmartFeed.swift @@ -11,12 +11,22 @@ import RSCore import Articles import Account +enum SmartFeedType { + case today + case allUnread + case starred + case search + case custom +} + final class SmartFeed: PseudoFeed { var nameForDisplay: String { return delegate.nameForDisplay } + let type: SmartFeedType + var unreadCount = 0 { didSet { if unreadCount != oldValue { @@ -34,8 +44,9 @@ final class SmartFeed: PseudoFeed { private let delegate: SmartFeedDelegate private var unreadCounts = [String: Int]() - init(delegate: SmartFeedDelegate) { + init(delegate: SmartFeedDelegate, type: SmartFeedType) { self.delegate = delegate + self.type = type NotificationCenter.default.addObserver(self, selector: #selector(unreadCountDidChange(_:)), name: .UnreadCountDidChange, object: nil) queueFetchUnreadCounts() // Fetch unread count at startup } diff --git a/Shared/SmartFeeds/SmartFeedsController.swift b/Shared/SmartFeeds/SmartFeedsController.swift index ad67c1120..a77e080f9 100644 --- a/Shared/SmartFeeds/SmartFeedsController.swift +++ b/Shared/SmartFeeds/SmartFeedsController.swift @@ -15,9 +15,9 @@ final class SmartFeedsController: DisplayNameProvider { let nameForDisplay = NSLocalizedString("Smart Feeds", comment: "Smart Feeds group title") var smartFeeds = [AnyObject]() - let todayFeed = SmartFeed(delegate: TodayFeedDelegate()) + let todayFeed = SmartFeed(delegate: TodayFeedDelegate(), type: .today) let unreadFeed = UnreadFeed() - let starredFeed = SmartFeed(delegate: StarredFeedDelegate()) + let starredFeed = SmartFeed(delegate: StarredFeedDelegate(), type: .starred) private init() {