Adds unread count indicator to Article view

Fixes #3134
This commit is contained in:
Stuart Breckenridge
2022-02-12 11:35:13 +08:00
parent c5e57c25bd
commit a72e0f047f

View File

@@ -105,6 +105,8 @@ class ArticleViewController: UIViewController, MainControllerIdentifiable {
parentNavController.interactivePopGestureRecognizer?.delegate = poppableDelegate
}
navigationItem.leftItemsSupplementBackButton = true
pageViewController = UIPageViewController(transitionStyle: .scroll, navigationOrientation: .horizontal, options: [:])
pageViewController.delegate = self
pageViewController.dataSource = self
@@ -225,6 +227,25 @@ class ArticleViewController: UIViewController, MainControllerIdentifiable {
starBarButtonItem.accLabelText = NSLocalizedString("Star Article", comment: "Star Article")
}
configureUnreadCountView()
}
func configureUnreadCountView() {
guard let controllers = poppableDelegate.navigationController?.viewControllers,
controllers.count >= 2 else { return }
for controller in controllers {
if let feedController = controller as? MasterFeedViewController {
if feedController.coordinator.timelineUnreadCount > 0 {
let unreadCountView = MasterTimelineUnreadCountView(frame: .zero)
unreadCountView.unreadCount = feedController.coordinator.timelineUnreadCount
unreadCountView.setFrameIfNotEqual(CGRect(x: 0, y: 0, width: unreadCountView.intrinsicContentSize.width, height: unreadCountView.intrinsicContentSize.height))
navigationItem.leftBarButtonItem = UIBarButtonItem(customView: unreadCountView)
} else {
navigationItem.leftBarButtonItem = nil
}
}
}
}
override func contentScrollView(for edge: NSDirectionalRectEdge) -> UIScrollView? {
@@ -287,6 +308,7 @@ class ArticleViewController: UIViewController, MainControllerIdentifiable {
}
// MARK: Notifications
@objc dynamic func unreadCountDidChange(_ notification: Notification) {