Merge branch 'ios-release' of https://github.com/Ranchero-Software/NetNewsWire into ios-release

This commit is contained in:
Maurice Parker
2020-05-15 10:45:22 -05:00
8 changed files with 68 additions and 11 deletions

View File

@@ -256,6 +256,7 @@ class ArticleViewController: UIViewController {
}
// MARK: Keyboard Shortcuts
@objc func navigateToTimeline(_ sender: Any?) {
coordinator.navigateToTimeline()
}
@@ -277,7 +278,10 @@ class ArticleViewController: UIViewController {
func stopArticleExtractorIfProcessing() {
currentWebViewController?.stopArticleExtractorIfProcessing()
}
func openInAppBrowser() {
currentWebViewController?.openInAppBrowser()
}
}
// MARK: WebViewControllerDelegate

View File

@@ -227,7 +227,15 @@ class WebViewController: UIViewController {
activityViewController.popoverPresentationController?.barButtonItem = popOverBarButtonItem
present(activityViewController, animated: true)
}
func openInAppBrowser() {
guard let preferredLink = article?.preferredLink, let url = URL(string: preferredLink) else {
return
}
let vc = SFSafariViewController(url: url)
present(vc, animated: true)
}
}
// MARK: ArticleExtractorDelegate

View File

@@ -177,6 +177,9 @@ private extension KeyboardManager {
let openInBrowserTitle = NSLocalizedString("Open In Browser", comment: "Open In Browser")
keys.append(KeyboardManager.createKeyCommand(title: openInBrowserTitle, action: "openInBrowser:", input: UIKeyCommand.inputRightArrow, modifiers: [.command]))
let openInAppBrowserTitle = NSLocalizedString("Open In App Browser", comment: "Open In App Browser")
keys.append(KeyboardManager.createKeyCommand(title: openInAppBrowserTitle, action: "openInAppBrowser:", input: "\r", modifiers: []))
let toggleReadTitle = NSLocalizedString("Toggle Read Status", comment: "Toggle Read Status")
keys.append(KeyboardManager.createKeyCommand(title: toggleReadTitle, action: "toggleRead:", input: "u", modifiers: [.command, .shift]))

View File

@@ -11,6 +11,7 @@ import Account
import Articles
import RSCore
import RSTree
import SafariServices
class MasterFeedViewController: UITableViewController, UndoableCommandRunner {
@@ -458,7 +459,18 @@ class MasterFeedViewController: UITableViewController, UndoableCommandRunner {
self.reloadAllVisibleCells()
}
}
@objc func markAllAsRead(_ sender: Any) {
guard let indexPath = tableView.indexPathForSelectedRow, let contentView = tableView.cellForRow(at: indexPath)?.contentView else {
return
}
let title = NSLocalizedString("Mark All as Read", comment: "Mark All as Read")
MarkAsReadAlertController.confirm(self, coordinator: coordinator, confirmTitle: title, sourceType: contentView) { [weak self] in
self?.coordinator.markAllAsReadInTimeline()
}
}
// MARK: API
func restoreSelectionIfNecessary(adjustScroll: Bool) {
@@ -503,7 +515,14 @@ class MasterFeedViewController: UITableViewController, UndoableCommandRunner {
func focus() {
becomeFirstResponder()
}
func openInAppBrowser() {
if let indexPath = coordinator.currentFeedIndexPath,
let url = coordinator.homePageURLForFeed(indexPath) {
let vc = SFSafariViewController(url: url)
present(vc, animated: true)
}
}
}
// MARK: UIContextMenuInteractionDelegate

View File

@@ -81,6 +81,14 @@ class RootSplitViewController: UISplitViewController {
@objc func openInBrowser(_ sender: Any?) {
coordinator.showBrowserForCurrentArticle()
}
@objc func openInAppBrowser(_ sender: Any?) {
coordinator.showInAppBrowserForCurrentArticle()
}
@objc func openFeedInAppBrowser(_ sender: Any?) {
coordinator.showInAppBrowserForCurrentFeed()
}
@objc func articleSearch(_ sender: Any?) {
coordinator.showSearch()

View File

@@ -12,6 +12,7 @@ import Account
import Articles
import RSCore
import RSTree
import SafariServices
enum PanelMode {
case unset
@@ -1183,6 +1184,14 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
}
UIApplication.shared.open(url, options: [:])
}
func showInAppBrowserForCurrentArticle() {
articleViewController?.openInAppBrowser()
}
func showInAppBrowserForCurrentFeed() {
masterFeedViewController.openInAppBrowser()
}
func navigateToFeeds() {
masterFeedViewController?.focus()