From cac67f8ac4ddfbad5d2da83e608f41076f0baeaf Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Sat, 8 Feb 2020 17:21:55 -0800 Subject: [PATCH] =?UTF-8?q?Use=20percent-encoding=20=E2=80=94=C2=A0via=20U?= =?UTF-8?q?RLComponents=20=E2=80=94=20on=20the=20articleID=20in=20the=20nn?= =?UTF-8?q?wImageIcon=20URL=20scheme.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared/Article Rendering/ArticleRenderer.swift | 11 ++++++++++- iOS/Article/ArticleIconSchemeHandler.swift | 8 +++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Shared/Article Rendering/ArticleRenderer.swift b/Shared/Article Rendering/ArticleRenderer.swift index 25a510907..92f0de19c 100644 --- a/Shared/Article Rendering/ArticleRenderer.swift +++ b/Shared/Article Rendering/ArticleRenderer.swift @@ -140,7 +140,16 @@ private extension ArticleRenderer { d["title"] = title d["body"] = body - d["avatars"] = ""; + + var components = URLComponents() + components.scheme = Self.imageIconScheme + components.path = article.articleID + if let imageIconURLString = components.string { + d["avatars"] = "" + } + else { + d["avatars"] = "" + } var feedLink = "" if let feedTitle = article.webFeed?.nameForDisplay { diff --git a/iOS/Article/ArticleIconSchemeHandler.swift b/iOS/Article/ArticleIconSchemeHandler.swift index 2fa681a55..62fe0ee62 100644 --- a/iOS/Article/ArticleIconSchemeHandler.swift +++ b/iOS/Article/ArticleIconSchemeHandler.swift @@ -24,9 +24,11 @@ class ArticleIconSchemeHandler: NSObject, WKURLSchemeHandler { urlSchemeTask.didFailWithError(URLError(.fileDoesNotExist)) return } - - let articleID = url.absoluteString.stripping(prefix: "\(ArticleRenderer.imageIconScheme)://") - + + guard let components = URLComponents(url: url, resolvingAgainstBaseURL: false) else { + return + } + let articleID = components.path guard let iconImage = coordinator.articleFor(articleID)?.iconImage() else { urlSchemeTask.didFailWithError(URLError(.fileDoesNotExist)) return