From 2e0331305abdaa2fec488b6e437fd3a9c50a237b Mon Sep 17 00:00:00 2001 From: Javi Rueda Date: Tue, 29 Dec 2020 11:30:05 +0100 Subject: [PATCH] Use Base64 to encode html when rendering Markdown files --- .../ui/findcontent/FileViewFragment.java | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/io/lbry/browser/ui/findcontent/FileViewFragment.java b/app/src/main/java/io/lbry/browser/ui/findcontent/FileViewFragment.java index a586e748..8b782539 100644 --- a/app/src/main/java/io/lbry/browser/ui/findcontent/FileViewFragment.java +++ b/app/src/main/java/io/lbry/browser/ui/findcontent/FileViewFragment.java @@ -15,6 +15,7 @@ import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.text.format.DateUtils; +import android.util.Base64; import android.view.ContextMenu; import android.view.LayoutInflater; import android.view.MenuItem; @@ -92,8 +93,6 @@ import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import io.lbry.browser.MainActivity; import io.lbry.browser.R; @@ -2140,19 +2139,9 @@ public class FileViewFragment extends BaseFragment implements ReadTextFileTask task = new ReadTextFileTask(filePath, new ReadTextFileTask.ReadTextFileHandler() { @Override public void onSuccess(String text) { - String html = buildMarkdownHtml(text); - if (webView != null) { - // Due to a change to Chrome, WebView only displays '#' -and everything after it- - // if it is '%23' instead. Problem appears in text like '#2' or #hashtags. - Pattern pattern = Pattern.compile("#(\\S+)"); - Matcher matcher = pattern.matcher(html); - - if (matcher.find()) { - html = html.replaceAll(pattern.toString(), "&%2335;" + matcher.group(1)); - } - - webView.loadData(html, "text/html", "utf-8"); + String html = buildMarkdownHtml(text); + webView.loadData(Base64.encodeToString(html.getBytes(), Base64.NO_PADDING), "text/html", "base64"); } }