From c243a85b896685951c3e5024a036cb65d153d8b2 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Sat, 4 Mar 2023 20:54:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/lib/webdav/WebDav.kt | 6 +++++- .../legado/app/model/analyzeRule/AnalyzeByJSoup.kt | 6 ++++-- .../legado/app/model/analyzeRule/AnalyzeByXPath.kt | 6 ++++-- .../java/io/legado/app/service/DownloadService.kt | 9 ++++++--- .../app/ui/book/import/local/ImportBookAdapter.kt | 12 ++++++------ app/src/main/java/io/legado/app/utils/ToastUtils.kt | 10 ++++++---- 6 files changed, 31 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/io/legado/app/lib/webdav/WebDav.kt b/app/src/main/java/io/legado/app/lib/webdav/WebDav.kt index baf435de4..e4a90df14 100644 --- a/app/src/main/java/io/legado/app/lib/webdav/WebDav.kt +++ b/app/src/main/java/io/legado/app/lib/webdav/WebDav.kt @@ -151,7 +151,11 @@ open class WebDav(val path: String, val authorization: Authorization) { */ private fun parseBody(s: String): List { val list = ArrayList() - val document = Jsoup.parse(s, Parser.xmlParser()) + val document = kotlin.runCatching { + Jsoup.parse(s, Parser.xmlParser()) + }.getOrElse { + Jsoup.parse(s) + } val ns = document.findNSPrefix("DAV:") val elements = document.findNS("response", ns) val urlStr = httpUrl ?: return list diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt index 28bddac73..05ae18c68 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeByJSoup.kt @@ -25,8 +25,10 @@ class AnalyzeByJSoup(doc: Any) { if (doc is JXNode) { return if (doc.isElement) doc.asElement() else Jsoup.parse(doc.toString()) } - if (doc.toString().startsWith("") || html1.endsWith("")) { html1 = "${html1}
" } - if (html1.trim().startsWith(" toastOnUi("下载出错,没有存储权限") - else -> toastOnUi("下载出错,${it.localizedMessage}") + it.printStackTrace() + val msg = when (it) { + is SecurityException -> "下载出错,没有存储权限" + else -> "下载出错,${it.localizedMessage}" } + toastOnUi(msg) + AppLog.put(msg, it) } } diff --git a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookAdapter.kt b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookAdapter.kt index 552d267f8..259716188 100644 --- a/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/import/local/ImportBookAdapter.kt @@ -106,7 +106,7 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) : if (selectAll) { getItems().forEach { if (!it.isDir && !bookFileNames.contains(it.name)) { - selectedUris.add(it.uri.toString()) + selectedUris.add(it.toString()) } } } else { @@ -118,11 +118,11 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) : fun revertSelection() { getItems().forEach { - if (!it.isDir) { - if (selectedUris.contains(it.uri.toString())) { - selectedUris.remove(it.uri.toString()) + if (!it.isDir && !bookFileNames.contains(it.name)) { + if (selectedUris.contains(it.toString())) { + selectedUris.remove(it.toString()) } else { - selectedUris.add(it.uri.toString()) + selectedUris.add(it.toString()) } } } @@ -132,7 +132,7 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) : fun removeSelection() { for (i in getItems().lastIndex downTo 0) { - if (getItem(i)?.uri.toString() in selectedUris) { + if (getItem(i)?.toString() in selectedUris) { removeItem(i) } } diff --git a/app/src/main/java/io/legado/app/utils/ToastUtils.kt b/app/src/main/java/io/legado/app/utils/ToastUtils.kt index c2a91858f..f2e690a5d 100644 --- a/app/src/main/java/io/legado/app/utils/ToastUtils.kt +++ b/app/src/main/java/io/legado/app/utils/ToastUtils.kt @@ -5,13 +5,15 @@ package io.legado.app.utils import android.content.Context import android.widget.Toast import androidx.fragment.app.Fragment +import io.legado.app.BuildConfig +import io.legado.app.help.config.AppConfig private var toast: Toast? = null fun Context.toastOnUi(message: Int) { runOnUI { kotlin.runCatching { - if (toast == null) { + if (toast == null || BuildConfig.DEBUG || AppConfig.recordLog) { toast = Toast.makeText(this, message, Toast.LENGTH_SHORT) } else { toast?.setText(message) @@ -25,7 +27,7 @@ fun Context.toastOnUi(message: Int) { fun Context.toastOnUi(message: CharSequence?) { runOnUI { kotlin.runCatching { - if (toast == null) { + if (toast == null || BuildConfig.DEBUG || AppConfig.recordLog) { toast = Toast.makeText(this, message.toString(), Toast.LENGTH_SHORT) } else { toast?.setText(message.toString()) @@ -39,7 +41,7 @@ fun Context.toastOnUi(message: CharSequence?) { fun Context.longToastOnUi(message: Int) { runOnUI { kotlin.runCatching { - if (toast == null) { + if (toast == null || BuildConfig.DEBUG || AppConfig.recordLog) { toast = Toast.makeText(this, message, Toast.LENGTH_LONG) } else { toast?.setText(message) @@ -53,7 +55,7 @@ fun Context.longToastOnUi(message: Int) { fun Context.longToastOnUi(message: CharSequence?) { runOnUI { kotlin.runCatching { - if (toast == null) { + if (toast == null || BuildConfig.DEBUG || AppConfig.recordLog) { toast = Toast.makeText(this, message.toString(), Toast.LENGTH_LONG) } else { toast?.setText(message.toString())