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()