Move more logic out of the DetailViewController and into the AppCoordinator

This commit is contained in:
Maurice Parker
2019-07-06 11:49:53 -05:00
parent 4884aebbfd
commit d543b979ac
2 changed files with 42 additions and 18 deletions

View File

@@ -144,33 +144,19 @@ class DetailViewController: UIViewController {
}
@IBAction func toggleRead(_ sender: Any) {
if let article = coordinator.currentArticle {
markArticles(Set([article]), statusKey: .read, flag: !article.status.read)
}
coordinator.toggleReadForCurrentArticle()
}
@IBAction func toggleStar(_ sender: Any) {
if let article = coordinator.currentArticle {
markArticles(Set([article]), statusKey: .starred, flag: !article.status.starred)
}
coordinator.toggleStarForCurrentArticle()
}
@IBAction func openBrowser(_ sender: Any) {
guard let preferredLink = coordinator.currentArticle?.preferredLink, let url = URL(string: preferredLink) else {
return
}
UIApplication.shared.open(url, options: [:])
coordinator.showBrowserForCurrentArticle()
}
@IBAction func showActivityDialog(_ sender: Any) {
guard let preferredLink = coordinator.currentArticle?.preferredLink, let url = URL(string: preferredLink) else {
return
}
let itemSource = ArticleActivityItemSource(url: url, subject: coordinator.currentArticle?.title)
let activityViewController = UIActivityViewController(activityItems: [itemSource], applicationActivities: nil)
activityViewController.popoverPresentationController?.barButtonItem = self.actionBarButtonItem
present(activityViewController, animated: true)
coordinator.showActivityDialogForCurrentArticle()
}
}