Adds reader mode shortcut (cmd+shift+R)
This commit is contained in:
@@ -295,32 +295,8 @@ class BrowserViewController: UIViewController
|
||||
|
||||
// Reader mode
|
||||
documentControls.readabilityView.addAction(UIAction { [unowned self] _ in
|
||||
tab.bridge.parseDocumentForReaderMode { string in
|
||||
DispatchQueue.main.async {
|
||||
documentControls.dismiss(animated: true, completion: nil)
|
||||
|
||||
if self.traitCollection.userInterfaceIdiom == .phone {
|
||||
let readableViewController = ReaderViewController(readableHTMLString: string, baseURL: self.tab.bridge.webView.url)
|
||||
readableViewController.title = self.tab.bridge.webView.title
|
||||
readableViewController.darkModeEnabled = self.tab.bridge.darkModeEnabled
|
||||
readableViewController.delegate = self
|
||||
|
||||
let navigationController = UINavigationController(rootViewController: readableViewController)
|
||||
self.present(navigationController, animated: true, completion: nil)
|
||||
} else {
|
||||
let userActivity = NSUserActivity(activityType: SessionActivityType.ReaderWindow.rawValue)
|
||||
userActivity.title = self.tab.title
|
||||
userActivity.userInfo = [
|
||||
ReaderUserActivityKeys.baseURL.rawValue : self.tab.bridge.webView.url ?? NSNull(),
|
||||
ReaderUserActivityKeys.htmlString.rawValue : string,
|
||||
]
|
||||
let requestOptions = UIWindowScene.ActivationRequestOptions()
|
||||
requestOptions.preferredPresentationStyle = .prominent
|
||||
UIApplication.shared.requestSceneSessionActivation(nil, userActivity: userActivity, options: requestOptions)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
documentControls.dismiss(animated: true, completion: nil)
|
||||
showReaderWindow()
|
||||
}, for: .touchUpInside)
|
||||
|
||||
// Archive
|
||||
@@ -459,6 +435,32 @@ class BrowserViewController: UIViewController
|
||||
#endif
|
||||
}
|
||||
|
||||
internal func showReaderWindow() {
|
||||
tab.bridge.parseDocumentForReaderMode { string in
|
||||
DispatchQueue.main.async {
|
||||
if self.traitCollection.userInterfaceIdiom == .phone {
|
||||
let readableViewController = ReaderViewController(readableHTMLString: string, baseURL: self.tab.bridge.webView.url)
|
||||
readableViewController.title = self.tab.bridge.webView.title
|
||||
readableViewController.darkModeEnabled = self.tab.bridge.darkModeEnabled
|
||||
readableViewController.delegate = self
|
||||
|
||||
let navigationController = UINavigationController(rootViewController: readableViewController)
|
||||
self.present(navigationController, animated: true, completion: nil)
|
||||
} else {
|
||||
let userActivity = NSUserActivity(activityType: SessionActivityType.ReaderWindow.rawValue)
|
||||
userActivity.title = self.tab.title
|
||||
userActivity.userInfo = [
|
||||
ReaderUserActivityKeys.baseURL.rawValue : self.tab.bridge.webView.url ?? NSNull(),
|
||||
ReaderUserActivityKeys.htmlString.rawValue : string,
|
||||
]
|
||||
let requestOptions = UIWindowScene.ActivationRequestOptions()
|
||||
requestOptions.preferredPresentationStyle = .prominent
|
||||
UIApplication.shared.requestSceneSessionActivation(nil, userActivity: userActivity, options: requestOptions)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal func updateLoadProgress(forWebView webView: WKWebView) {
|
||||
if let loadError = tab.loadError {
|
||||
toolbarController.urlBar.loadProgress = .error(error: loadError)
|
||||
|
||||
Reference in New Issue
Block a user