diff --git a/iOS/Detail/DetailViewController.swift b/iOS/Detail/DetailViewController.swift index d2f64290b..76d614346 100644 --- a/iOS/Detail/DetailViewController.swift +++ b/iOS/Detail/DetailViewController.swift @@ -29,12 +29,19 @@ class DetailViewController: UIViewController { super.viewDidLoad() self.navigationController?.navigationItem.largeTitleDisplayMode = .never webView.navigationDelegate = self + markAsRead() reloadUI() reloadHTML() NotificationCenter.default.addObserver(self, selector: #selector(statusesDidChange(_:)), name: .StatusesDidChange, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(articleSelectionChange(_:)), name: .ArticleSelectionChange, object: navState) } + func markAsRead() { + if let article = navState?.currentArticle { + markArticles(Set([article]), statusKey: .read, flag: true) + } + } + func reloadUI() { guard let article = navState?.currentArticle else { @@ -86,6 +93,7 @@ class DetailViewController: UIViewController { } @objc func articleSelectionChange(_ note: Notification) { + markAsRead() reloadUI() reloadHTML() } diff --git a/iOS/Timeline/MasterTimelineViewController.swift b/iOS/Timeline/MasterTimelineViewController.swift index 37a07c183..d2ad3498d 100644 --- a/iOS/Timeline/MasterTimelineViewController.swift +++ b/iOS/Timeline/MasterTimelineViewController.swift @@ -270,10 +270,7 @@ class MasterTimelineViewController: UITableViewController, UndoableCommandRunner @objc func articleSelectionChange(_ note: Notification) { - if let indexPath = navState?.currentArticleIndexPath, let article = navState?.articles[indexPath.row] { - if !article.status.read { - markArticles(Set([article]), statusKey: .read, flag: true) - } + if let indexPath = navState?.currentArticleIndexPath { // TODO: make this scroll like the desktop version if tableView.indexPathForSelectedRow != indexPath { tableView.selectRow(at: indexPath, animated: true, scrollPosition: .middle)