From b57789b3367e40905aef8be5a9a47d92f1bda961 Mon Sep 17 00:00:00 2001 From: kunfei Date: Wed, 2 Aug 2023 23:56:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=83=8C=E6=99=AF=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/help/AppWebDav.kt | 5 ++++- .../io/legado/app/help/config/ReadBookConfig.kt | 16 ++++++++++++++++ .../java/io/legado/app/help/storage/Backup.kt | 10 ++++++++-- .../java/io/legado/app/help/storage/Restore.kt | 4 ++-- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/AppWebDav.kt b/app/src/main/java/io/legado/app/help/AppWebDav.kt index 4b4422629..07f4d6d3e 100644 --- a/app/src/main/java/io/legado/app/help/AppWebDav.kt +++ b/app/src/main/java/io/legado/app/help/AppWebDav.kt @@ -191,9 +191,12 @@ object AppWebDav { /** * 下载背景图片 */ - suspend fun downBgs(fileNames: String) { + suspend fun downBgs() { val authorization = authorization ?: return if (!NetworkUtils.isAvailable()) return + val bgWebDavFiles = getAllBgWebDavFiles().getOrThrow() + .map { it.displayName } + .toSet() } suspend fun exportWebDav(byteArray: ByteArray, fileName: String) { 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 018e0632e..945536352 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 @@ -131,6 +131,22 @@ object ReadBookConfig { } } + fun getAllPicBgStr(): ArrayList { + val list = arrayListOf() + configList.forEach { + if (it.bgType == 2) { + list.add(it.bgStr) + } + if (it.bgTypeNight == 2) { + list.add(it.bgStrNight) + } + if (it.bgTypeEInk == 2) { + list.add(it.bgStrEInk) + } + } + return list + } + fun deleteDur(): Boolean { if (configList.size > 5) { configList.removeAt(styleSelect) diff --git a/app/src/main/java/io/legado/app/help/storage/Backup.kt b/app/src/main/java/io/legado/app/help/storage/Backup.kt index 17c229dd3..76fec8f83 100644 --- a/app/src/main/java/io/legado/app/help/storage/Backup.kt +++ b/app/src/main/java/io/legado/app/help/storage/Backup.kt @@ -190,8 +190,14 @@ object Backup { FileUtils.delete(backupPath) FileUtils.delete(zipFilePath) coroutineContext.ensureActive() - appCtx.externalFiles.getFile("bg").listFiles()?.let { - AppWebDav.upBgs(it) + ReadBookConfig.getAllPicBgStr().map { + if (it.contains(File.separator)) { + File(it) + } else { + appCtx.externalFiles.getFile("bg", it) + } + }.let { + AppWebDav.upBgs(it.toTypedArray()) } } diff --git a/app/src/main/java/io/legado/app/help/storage/Restore.kt b/app/src/main/java/io/legado/app/help/storage/Restore.kt index 5ebf0b481..ab5eeba1c 100644 --- a/app/src/main/java/io/legado/app/help/storage/Restore.kt +++ b/app/src/main/java/io/legado/app/help/storage/Restore.kt @@ -7,7 +7,6 @@ import io.legado.app.BuildConfig import io.legado.app.R import io.legado.app.constant.AppConst.androidId import io.legado.app.constant.AppLog -import io.legado.app.constant.EventBus import io.legado.app.constant.PreferKey import io.legado.app.data.appDb import io.legado.app.data.entities.Book @@ -25,6 +24,7 @@ import io.legado.app.data.entities.RuleSub import io.legado.app.data.entities.SearchKeyword import io.legado.app.data.entities.Server import io.legado.app.data.entities.TxtTocRule +import io.legado.app.help.AppWebDav import io.legado.app.help.DirectLinkUpload import io.legado.app.help.LauncherIconHelp import io.legado.app.help.book.isLocal @@ -46,7 +46,6 @@ import io.legado.app.utils.getSharedPreferences import io.legado.app.utils.isContentScheme import io.legado.app.utils.isJsonArray import io.legado.app.utils.openInputStream -import io.legado.app.utils.postEvent import io.legado.app.utils.toastOnUi import kotlinx.coroutines.Dispatchers.Main import kotlinx.coroutines.delay @@ -213,6 +212,7 @@ object Restore { AppLog.put("恢复阅读界面出错\n${it.localizedMessage}", it) } } + AppWebDav.downBgs() appCtx.getSharedPreferences(path, "config")?.all?.let { map -> val edit = appCtx.defaultSharedPreferences.edit()