From 4c01eeea8d00daf8bf6dc4db1212df92353efa51 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Fri, 21 Nov 2025 12:41:57 +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/model/CacheBook.kt | 8 +++++++- .../main/java/io/legado/app/service/CacheBookService.kt | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/model/CacheBook.kt b/app/src/main/java/io/legado/app/model/CacheBook.kt index e5ee4f337..fec488ff1 100644 --- a/app/src/main/java/io/legado/app/model/CacheBook.kt +++ b/app/src/main/java/io/legado/app/model/CacheBook.kt @@ -191,7 +191,7 @@ object CacheBook { private val tasks = CompositeCoroutine() private var isStopped = false private var waitingRetry = false - private var isLoading = true + private var isLoading = false val waitCount get() = waitDownloadSet.size val onDownloadCount get() = onDownloadSet.size @@ -215,11 +215,17 @@ object CacheBook { return isLoading } + @Synchronized + fun setLoading() { + isLoading = true + } + @Synchronized fun stop() { waitDownloadSet.clear() tasks.clear() isStopped = true + isLoading = false postEvent(EventBus.UP_DOWNLOAD, book.bookUrl) } diff --git a/app/src/main/java/io/legado/app/service/CacheBookService.kt b/app/src/main/java/io/legado/app/service/CacheBookService.kt index e807ceeea..1474ab0a4 100644 --- a/app/src/main/java/io/legado/app/service/CacheBookService.kt +++ b/app/src/main/java/io/legado/app/service/CacheBookService.kt @@ -106,12 +106,14 @@ class CacheBookService : BaseService() { val chapterCount = appDb.bookChapterDao.getChapterCount(bookUrl) val book = cacheBook.book if (chapterCount == 0) { + cacheBook.setLoading() mutex.withLock { val name = book.name if (book.tocUrl.isEmpty()) { kotlin.runCatching { WebBook.getBookInfoAwait(cacheBook.bookSource, book) }.onFailure { + removeDownload(bookUrl) val msg = "《$name》目录为空且加载详情页失败\n${it.localizedMessage}" AppLog.put(msg, it, true) return@execute @@ -122,6 +124,7 @@ class CacheBookService : BaseService() { book.totalChapterNum = 0 book.update() } + removeDownload(bookUrl) val msg = "《$name》目录为空且加载目录失败\n${it.localizedMessage}" AppLog.put(msg, it, true) return@execute