From 92597a82d3760e965dab75f7e0c378700c7b54d7 Mon Sep 17 00:00:00 2001
From: bushixuanqi <57338301+bushixuanqi@users.noreply.github.com>
Date: Mon, 14 Jun 2021 02:06:52 +0800
Subject: [PATCH] Update HtmlFormatter.kt
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
精简图片格式化程序,提供执行效率,改重复匹配为依次查找
---
.../java/io/legado/app/utils/HtmlFormatter.kt | 27 +++++++------------
1 file changed, 10 insertions(+), 17 deletions(-)
diff --git a/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt b/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt
index 626bbf70c..fd3c6c269 100644
--- a/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt
+++ b/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt
@@ -24,25 +24,18 @@ object HtmlFormatter {
html ?: return ""
var formatHtml = formatKeepImg(html)
val sb = StringBuffer()
- var appendPos = 0
- while (appendPos < formatHtml.length) {
- val matcher = AppPattern.imgPattern.matcher(formatHtml)
- if(matcher.find()) {
- val urlArray = matcher.group(1)!!.split(AnalyzeUrl.splitUrlRegex)
- var url = NetworkUtils.getAbsoluteURL(redirectUrl, urlArray[0])
- if (urlArray.size > 1) {
- url = "$url,${urlArray[1]}"
- }
- sb.append(formatHtml.substring(appendPos, matcher.start()))
- sb.append("
")
- appendPos = matcher.end()
- formatHtml = formatHtml.substring(appendPos, formatHtml.length)
- appendPos = 0
- } else {
- sb.append(formatHtml)
- appendPos = formatHtml.length
+ val matcher = AppPattern.imgPattern.matcher(formatHtml)
+ while (matcher.find()) {
+ val urlArray = matcher.group(1)!!.split(AnalyzeUrl.splitUrlRegex)
+ var url = NetworkUtils.getAbsoluteURL(redirectUrl, urlArray[0])
+ if (urlArray.size > 1) {
+ url = "$url,${urlArray[1]}"
}
+ //将Matcher上次匹配结尾到本次匹配结尾这段字符串序列追加到sb中,且是先将其中匹配到的部分替换后再追加
+ matcher.appendReplacement(sb, "
")
}
+ //将Matcher最后那个匹配之后的字串匹配到追加到sb中
+ matcher.appendTail(sb)
return sb.toString()
}