From 27f0c9e0f1b5c117ad1940150357b4ded3bc1388 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Mon, 19 Sep 2022 17:12:13 +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 --- .../io/legado/app/ui/book/read/config/BgTextConfigDialog.kt | 6 +++++- app/src/main/java/io/legado/app/utils/MD5Utils.kt | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt index 089070aee..8584638e5 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/BgTextConfigDialog.kt @@ -353,7 +353,11 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { private fun setBgFromUri(uri: Uri) { readUri(uri) { fileDoc, inputStream -> var file = requireContext().externalFiles - file = FileUtils.createFileIfNotExist(file, "bg", fileDoc.name) + val suffix = fileDoc.name.substringAfterLast(".") + val fileName = uri.inputStream(requireContext())!!.use { + MD5Utils.md5Encode(it) + ".$suffix" + } + file = FileUtils.createFileIfNotExist(file, "bg", fileName) FileOutputStream(file).use { outputStream -> inputStream.copyTo(outputStream) } diff --git a/app/src/main/java/io/legado/app/utils/MD5Utils.kt b/app/src/main/java/io/legado/app/utils/MD5Utils.kt index d018508fa..3cf170cf8 100644 --- a/app/src/main/java/io/legado/app/utils/MD5Utils.kt +++ b/app/src/main/java/io/legado/app/utils/MD5Utils.kt @@ -1,6 +1,8 @@ package io.legado.app.utils import cn.hutool.crypto.digest.DigestUtil +import java.io.InputStream + /** * 将字符串转化为MD5 */ @@ -11,6 +13,10 @@ object MD5Utils { return DigestUtil.digester("MD5").digestHex(str) } + fun md5Encode(inputStream: InputStream): String { + return DigestUtil.digester("MD5").digestHex(inputStream) + } + fun md5Encode16(str: String): String { var reStr = md5Encode(str) reStr = reStr.substring(8, 24)