Skip to content

Commit

Permalink
Merge pull request #3 from Ranchero-Software/ios-release
Browse files Browse the repository at this point in the history
catchup
  • Loading branch information
stuartbreckenridge committed May 16, 2020
2 parents b56d20d + c2b749a commit e6e77c1
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 13 deletions.
4 changes: 2 additions & 2 deletions Shared/Resources/GlobalKeyboardShortcuts.plist
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,11 @@
</dict>
<dict>
<key>title</key>
<string>Open in Browser</string>
<string>Open in App Browser</string>
<key>key</key>
<string>[return]</string>
<key>action</key>
<string>openInBrowser:</string>
<string>openFeedInAppBrowser:</string>
</dict>
<dict>
<key>key</key>
Expand Down
16 changes: 11 additions & 5 deletions Shared/UserNotifications/UserNotificationManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,20 @@ private extension UserNotificationManager {
let content = UNMutableNotificationContent()

content.title = webFeed.nameForDisplay
content.body = ArticleStringFormatter.truncatedTitle(article)
if content.body.isEmpty {
content.body = ArticleStringFormatter.truncatedSummary(article)

if !ArticleStringFormatter.truncatedTitle(article).isEmpty {
content.subtitle = ArticleStringFormatter.truncatedTitle(article)
}


content.body = ArticleStringFormatter.truncatedSummary(article)

content.threadIdentifier = webFeed.webFeedID
content.summaryArgument = "\(webFeed.nameForDisplay)"
content.summaryArgumentCount = 1

content.sound = UNNotificationSound.default
content.userInfo = [UserInfoKey.articlePath: article.pathUserInfo]

let request = UNNotificationRequest.init(identifier: "articleID:\(article.articleID)", content: content, trigger: nil)
UNUserNotificationCenter.current().add(request)
}
Expand Down
6 changes: 5 additions & 1 deletion iOS/Article/ArticleViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,7 @@ class ArticleViewController: UIViewController {
}

// MARK: Keyboard Shortcuts

@objc func navigateToTimeline(_ sender: Any?) {
coordinator.navigateToTimeline()
}
Expand All @@ -277,7 +278,10 @@ class ArticleViewController: UIViewController {
func stopArticleExtractorIfProcessing() {
currentWebViewController?.stopArticleExtractorIfProcessing()
}


func openInAppBrowser() {
currentWebViewController?.openInAppBrowser()
}
}

// MARK: WebViewControllerDelegate
Expand Down
14 changes: 11 additions & 3 deletions iOS/Article/WebViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class WebViewController: UIViewController {

private(set) var article: Article?

let scrollPositionQueue = CoalescingQueue(name: "Article Scroll Position", interval: 0.3, maxInterval: 1.0)
let scrollPositionQueue = CoalescingQueue(name: "Article Scroll Position", interval: 0.3, maxInterval: 0.3)
var windowScrollY = 0

override func viewDidLoad() {
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -291,7 +299,7 @@ extension WebViewController: UIContextMenuInteractionDelegate {
extension WebViewController: WKNavigationDelegate {

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
if view.subviews.count > 1 {
while view.subviews.count > 1 {
view.subviews.last?.removeFromSuperview()
}
}
Expand Down
3 changes: 3 additions & 0 deletions iOS/KeyboardManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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]))

Expand Down
10 changes: 9 additions & 1 deletion iOS/MasterFeed/MasterFeedViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Account
import Articles
import RSCore
import RSTree
import SafariServices

class MasterFeedViewController: UITableViewController, UndoableCommandRunner {

Expand Down Expand Up @@ -514,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
Expand Down
8 changes: 8 additions & 0 deletions iOS/RootSplitViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
11 changes: 10 additions & 1 deletion iOS/SceneCoordinator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import Account
import Articles
import RSCore
import RSTree
import SafariServices

enum PanelMode {
case unset
Expand Down Expand Up @@ -749,7 +750,7 @@ class SceneCoordinator: NSObject, UndoableCommandRunner, UnreadCountProvider {

setTimelineFeed(nil, animated: false) {
if self.isReadFeedsFiltered {
self.queueRebuildBackingStores()
self.rebuildBackingStores()
}
self.activityManager.invalidateSelecting()
if self.rootSplitViewController.isCollapsed && self.navControllerForTimeline().viewControllers.last is MasterTimelineViewController {
Expand Down Expand Up @@ -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()
Expand Down

0 comments on commit e6e77c1

Please sign in to comment.