adds keyboard shortcuts for open in Safari

This commit is contained in:
Rizwan Mohamed Ibrahim 2020-05-14 17:58:38 +05:30
parent 8f8bd229c5
commit f7f7f4dddb
No known key found for this signature in database
GPG Key ID: D5BEE468D448BCC5
5 changed files with 29 additions and 2 deletions

View File

@ -106,11 +106,11 @@
</dict>
<dict>
<key>title</key>
<string>Open in Browser</string>
<string>Open in Safari</string>
<key>key</key>
<string>[return]</string>
<key>action</key>
<string>openInBrowser:</string>
<string>openInSafari:</string>
</dict>
<dict>
<key>key</key>

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 openInSafariTitle = NSLocalizedString("Open In Safari", comment: "Open In Safari")
keys.append(KeyboardManager.createKeyCommand(title: openInSafariTitle, action: "openInSafari:", 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

@ -420,6 +420,10 @@ class MasterFeedViewController: UITableViewController, UndoableCommandRunner {
@objc func openInBrowser(_ sender: Any?) {
coordinator.showBrowserForCurrentFeed()
}
@objc func openInSafari(_ sender: Any?) {
coordinator.showSafariForCurrentFeed()
}
@objc override func delete(_ sender: Any?) {
if let indexPath = coordinator.currentFeedIndexPath {

View File

@ -81,6 +81,10 @@ class RootSplitViewController: UISplitViewController {
@objc func openInBrowser(_ sender: Any?) {
coordinator.showBrowserForCurrentArticle()
}
@objc func openInSafari(_ sender: Any?) {
coordinator.showSafariForCurrentArticle()
}
@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,21 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {
}
UIApplication.shared.open(url, options: [:])
}
func showSafariForCurrentFeed() {
if let ip = currentFeedIndexPath, let url = homePageURLForFeed(ip) {
let vc = SFSafariViewController(url: url)
rootSplitViewController.viewControllers.last?.present(vc, animated: true)
}
}
func showSafariForCurrentArticle() {
guard let preferredLink = currentArticle?.preferredLink, let url = URL(string: preferredLink) else {
return
}
let vc = SFSafariViewController(url: url)
rootSplitViewController.viewControllers.last?.present(vc, animated: true)
}
func navigateToFeeds() {
masterFeedViewController?.focus()