From f96b03432a4c3fc5469032d8f2bfc25a5bd2f1b6 Mon Sep 17 00:00:00 2001 From: kunfei Date: Tue, 1 Aug 2023 22:46:18 +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 --- .../java/io/legado/app/help/config/ReadBookConfig.kt | 12 +++++++++++- .../app/ui/book/read/config/BgTextConfigDialog.kt | 2 +- app/src/main/java/io/legado/app/utils/FileUtils.kt | 10 +++++----- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt b/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt index 256c753cd..018e0632e 100644 --- a/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt @@ -425,6 +425,7 @@ object ReadBookConfig { } if (config.bgType == 2) { val bgName = FileUtils.getName(config.bgStr) + config.bgStr = bgName val bgPath = FileUtils.getPath(appCtx.externalFiles, "bg", bgName) if (!FileUtils.exist(bgPath)) { val bgFile = configDir.getFile(bgName) @@ -436,6 +437,7 @@ object ReadBookConfig { } if (config.bgTypeNight == 2) { val bgName = FileUtils.getName(config.bgStrNight) + config.bgStrNight = bgName val bgPath = FileUtils.getPath(appCtx.externalFiles, "bg", bgName) if (!FileUtils.exist(bgPath)) { val bgFile = configDir.getFile(bgName) @@ -447,6 +449,7 @@ object ReadBookConfig { } if (config.bgTypeEInk == 2) { val bgName = FileUtils.getName(config.bgStrEInk) + config.bgStrEInk = bgName val bgPath = FileUtils.getPath(appCtx.externalFiles, "bg", bgName) if (!FileUtils.exist(bgPath)) { val bgFile = configDir.getFile(bgName) @@ -570,10 +573,12 @@ object ReadBookConfig { bgTypeEInk = bgType bgStrEInk = bg } + AppConfig.isNightTheme -> { bgTypeNight = bgType bgStrNight = bg } + else -> { this.bgType = bgType bgStr = bg @@ -611,8 +616,13 @@ object ReadBookConfig { val bitmap = BitmapUtils.decodeAssetsBitmap(appCtx, path, width, height) BitmapDrawable(resources, bitmap?.resizeAndRecycle(width, height)) } + else -> { - val bitmap = BitmapUtils.decodeBitmap(curBgStr(), width, height) + val path = curBgStr().let { + if (it.contains(File.separator)) it + else FileUtils.getPath(appCtx.externalFiles, "bg", curBgStr()) + } + val bitmap = BitmapUtils.decodeBitmap(path, width, height) BitmapDrawable(resources, bitmap?.resizeAndRecycle(width, height)) } } 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 b550e23e5..b86675476 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 @@ -367,7 +367,7 @@ class BgTextConfigDialog : BaseDialogFragment(R.layout.dialog_read_bg_text) { FileOutputStream(file).use { outputStream -> inputStream.copyTo(outputStream) } - ReadBookConfig.durConfig.setCurBg(2, file.absolutePath) + ReadBookConfig.durConfig.setCurBg(2, fileName) postEvent(EventBus.UP_CONFIG, false) }.onFailure { appCtx.toastOnUi(it.localizedMessage) diff --git a/app/src/main/java/io/legado/app/utils/FileUtils.kt b/app/src/main/java/io/legado/app/utils/FileUtils.kt index ddbe8c004..6cf3255d2 100644 --- a/app/src/main/java/io/legado/app/utils/FileUtils.kt +++ b/app/src/main/java/io/legado/app/utils/FileUtils.kt @@ -551,15 +551,15 @@ object FileUtils { /** * 获取文件或网址的名称(包括后缀) */ - fun getName(pathOrUrl: String?): String { - if (pathOrUrl == null) { + fun getName(path: String?): String { + if (path == null) { return "" } - val pos = pathOrUrl.lastIndexOf('/') + val pos = path.lastIndexOf(File.separator) return if (0 <= pos) { - pathOrUrl.substring(pos + 1) + path.substring(pos + 1) } else { - System.currentTimeMillis().toString() + "." + getExtension(pathOrUrl) + path } }