Skip to content

Commit e387e3a

Browse files
committed
Add support for tags
1 parent 5177ccc commit e387e3a

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

WordPress/Classes/ViewRelated/Reader/ReaderDiscoverHeaderView.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,17 @@ enum ReaderDiscoverTag: Hashable {
138138
/// Latest post from your selected tags.
139139
case latest
140140

141+
/// A quick access for your tags.
142+
case tag(ReaderTagTopic)
143+
141144
var localizedTitle: String {
142145
switch self {
143146
case .recommended:
144147
NSLocalizedString("reader.discover.header.tag.recommended", value: "Recommended", comment: "Header view tag (filter)")
145148
case .latest:
146149
NSLocalizedString("reader.discover.header.tag.latest", value: "Latest", comment: "Header view tag (filter)")
150+
case .tag(let tag):
151+
tag.title.localizedCapitalized
147152
}
148153
}
149154
}

WordPress/Classes/ViewRelated/Reader/ReaderDiscoverViewController.swift

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ class ReaderDiscoverViewController: UIViewController, ReaderDiscoverHeaderViewDe
77
private var selectedTag: ReaderDiscoverTag = .recommended
88
private let topic: ReaderAbstractTopic
99
private var streamVC: ReaderStreamViewController?
10+
private var viewContext: NSManagedObjectContext {
11+
ContextManager.shared.mainContext
12+
}
1013

1114
init(topic: ReaderAbstractTopic) {
1215
wpAssert(ReaderHelpers.topicIsDiscover(topic))
@@ -32,11 +35,21 @@ class ReaderDiscoverViewController: UIViewController, ReaderDiscoverHeaderViewDe
3235
}
3336

3437
private func setupHeaderView() {
35-
headerView.configure(tags: [.recommended, .latest])
38+
let tags = fetchTags().map(ReaderDiscoverTag.tag)
39+
40+
headerView.configure(tags: [.recommended, .latest] + tags)
3641
headerView.setSelectedTag(selectedTag)
3742
headerView.delegate = self
3843
}
3944

45+
private func fetchTags() -> [ReaderTagTopic] {
46+
viewContext.allObjects(
47+
ofType: ReaderTagTopic.self,
48+
matching: ReaderSidebarTagsSection.predicate,
49+
sortedBy: [NSSortDescriptor(key: "title", ascending: true)]
50+
)
51+
}
52+
4053
// MARK: - Selected Stream
4154

4255
private func configureStream(for tag: ReaderDiscoverTag) {
@@ -49,6 +62,8 @@ class ReaderDiscoverViewController: UIViewController, ReaderDiscoverHeaderViewDe
4962
ReaderDiscoverStreamViewController(topic: topic)
5063
case .latest:
5164
ReaderDiscoverStreamViewController(topic: topic, sorting: .date)
65+
case .tag(let tag):
66+
ReaderStreamViewController.controllerWithTopic(tag)
5267
}
5368
}
5469

0 commit comments

Comments
 (0)