diff --git a/iOS/Article/ArticleViewController.swift b/iOS/Article/ArticleViewController.swift index bb839e372..9bd609774 100644 --- a/iOS/Article/ArticleViewController.swift +++ b/iOS/Article/ArticleViewController.swift @@ -250,6 +250,10 @@ class ArticleViewController: UIViewController { @IBAction func showActivityDialog(_ sender: Any) { currentWebViewController?.showActivityDialog(popOverBarButtonItem: actionBarButtonItem) } + + @objc func toggleReaderView(_ sender: Any?) { + currentWebViewController?.toggleArticleExtractor() + } // MARK: Keyboard Shortcuts @objc func navigateToTimeline(_ sender: Any?) { diff --git a/iOS/KeyboardManager.swift b/iOS/KeyboardManager.swift index a13f44ceb..c463fcde2 100644 --- a/iOS/KeyboardManager.swift +++ b/iOS/KeyboardManager.swift @@ -138,6 +138,9 @@ private extension KeyboardManager { let goToStarredTitle = NSLocalizedString("Go To Starred", comment: "Go To Starred") keys.append(KeyboardManager.createKeyCommand(title: goToStarredTitle, action: "goToStarred:", input: "3", modifiers: [.command])) + let gotoSettings = NSLocalizedString("Go To Settings", comment: "Go To Settings") + keys.append(KeyboardManager.createKeyCommand(title: gotoSettings, action: "goToSettings:", input: ",", modifiers: [.command])) + let articleSearchTitle = NSLocalizedString("Article Search", comment: "Article Search") keys.append(KeyboardManager.createKeyCommand(title: articleSearchTitle, action: "articleSearch:", input: "f", modifiers: [.command, .alternate])) @@ -186,6 +189,12 @@ private extension KeyboardManager { let toggleStarredTitle = NSLocalizedString("Toggle Starred Status", comment: "Toggle Starred Status") keys.append(KeyboardManager.createKeyCommand(title: toggleStarredTitle, action: "toggleStarred:", input: "l", modifiers: [.command, .shift])) + let toggleSidebar = NSLocalizedString("Toggle Sidebar", comment: "Toggle Sidebar") + keys.append(KeyboardManager.createKeyCommand(title: toggleSidebar, action: "toggleSidebar:", input: "s", modifiers: [.command, .control])) + + let toggleReaderView = NSLocalizedString("Toggle Reader View", comment: "Toggle Reader View") + keys.append(KeyboardManager.createKeyCommand(title: toggleReaderView, action: "toggleReaderView:", input: "r", modifiers: [.command, .shift])) + return keys } diff --git a/iOS/MasterTimeline/MasterTimelineViewController.swift b/iOS/MasterTimeline/MasterTimelineViewController.swift index 54f1f8bb9..e2bd08eb6 100644 --- a/iOS/MasterTimeline/MasterTimelineViewController.swift +++ b/iOS/MasterTimeline/MasterTimelineViewController.swift @@ -161,7 +161,7 @@ class MasterTimelineViewController: UITableViewController, UndoableCommandRunner @objc func showFeedInspector(_ sender: UITapGestureRecognizer) { coordinator.showFeedInspector() } - + // MARK: API func restoreSelectionIfNecessary(adjustScroll: Bool) { diff --git a/iOS/RootSplitViewController.swift b/iOS/RootSplitViewController.swift index 852c863d1..33bd740c1 100644 --- a/iOS/RootSplitViewController.swift +++ b/iOS/RootSplitViewController.swift @@ -121,7 +121,11 @@ class RootSplitViewController: UISplitViewController { @objc func goToStarred(_ sender: Any?) { coordinator.selectStarredFeed() } - + + @objc func goToSettings(_ sender: Any?) { + coordinator.showSettings() + } + @objc func toggleRead(_ sender: Any?) { coordinator.toggleReadForCurrentArticle() } @@ -129,5 +133,8 @@ class RootSplitViewController: UISplitViewController { @objc func toggleStarred(_ sender: Any?) { coordinator.toggleStarredForCurrentArticle() } - + + @objc func toggleSidebar(_ sender: Any?) { + coordinator.toggleSidebar() + } } diff --git a/iOS/SceneCoordinator.swift b/iOS/SceneCoordinator.swift index 25b732781..64abb8d3d 100644 --- a/iOS/SceneCoordinator.swift +++ b/iOS/SceneCoordinator.swift @@ -1199,7 +1199,10 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider { func navigateToDetail() { articleViewController?.focus() } - + + func toggleSidebar() { + rootSplitViewController.preferredDisplayMode = rootSplitViewController.displayMode == .allVisible ? .primaryHidden : .allVisible + } } // MARK: UISplitViewControllerDelegate