Add code to show the Feed Inspector when the feed icon in the article view is pressed. Issue #1931

This commit is contained in:
Maurice Parker 2020-04-28 21:26:57 -05:00
parent 5e4ebb7298
commit a48cbfe1ca
2 changed files with 14 additions and 1 deletions

View File

@ -22,6 +22,7 @@ class WebViewController: UIViewController {
private struct MessageName { private struct MessageName {
static let imageWasClicked = "imageWasClicked" static let imageWasClicked = "imageWasClicked"
static let imageWasShown = "imageWasShown" static let imageWasShown = "imageWasShown"
static let showFeedInspector = "showFeedInspector"
} }
private var topShowBarsView: UIView! private var topShowBarsView: UIView!
@ -345,6 +346,10 @@ extension WebViewController: WKScriptMessageHandler {
clickedImageCompletion?() clickedImageCompletion?()
case MessageName.imageWasClicked: case MessageName.imageWasClicked:
imageWasClicked(body: message.body as? String) imageWasClicked(body: message.body as? String)
case MessageName.showFeedInspector:
if let webFeed = article?.webFeed {
coordinator.showFeedInspector(for: webFeed)
}
default: default:
return return
} }
@ -440,6 +445,7 @@ private extension WebViewController {
webView.configuration.userContentController.add(WrapperScriptMessageHandler(self), name: MessageName.imageWasClicked) webView.configuration.userContentController.add(WrapperScriptMessageHandler(self), name: MessageName.imageWasClicked)
webView.configuration.userContentController.add(WrapperScriptMessageHandler(self), name: MessageName.imageWasShown) webView.configuration.userContentController.add(WrapperScriptMessageHandler(self), name: MessageName.imageWasShown)
webView.configuration.userContentController.add(WrapperScriptMessageHandler(self), name: MessageName.showFeedInspector)
self.renderPage(webView) self.renderPage(webView)

View File

@ -96,7 +96,7 @@ class ImageViewer {
// Add the click listener for images // Add the click listener for images
window.onclick = function(event) { window.onclick = function(event) {
if (event.target.matches("img") && event.target.id != "nnwImageIcon") { if (event.target.matches("img")) {
if (activeImageViewer && activeImageViewer.img === event.target) { if (activeImageViewer && activeImageViewer.img === event.target) {
cancelImageLoad(); cancelImageLoad();
} else { } else {
@ -130,6 +130,13 @@ function showClickedImage() {
window.webkit.messageHandlers.imageWasShown.postMessage(""); window.webkit.messageHandlers.imageWasShown.postMessage("");
} }
function showFeedInspectorSetup() {
document.getElementById("nnwImageIcon").onclick = function(event) {
window.webkit.messageHandlers.showFeedInspector.postMessage("");
}
}
function postRenderProcessing() { function postRenderProcessing() {
ImageViewer.init(); ImageViewer.init();
showFeedInspectorSetup();
} }