From fced9a2a6612a25a4a65a6b2410fb98134a2b2cd Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Fri, 31 Jan 2025 15:51:54 +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 | 5 ++++- app/src/main/java/io/legado/app/model/ReadBook.kt | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) 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 9549e7951..6a3f80645 100644 --- a/app/src/main/java/io/legado/app/model/CacheBook.kt +++ b/app/src/main/java/io/legado/app/model/CacheBook.kt @@ -367,6 +367,7 @@ object CacheBook { downloadFinish(chapter, "获取正文失败\n${it.localizedMessage}", resetPageOffset) }.onCancel { onCancel(chapter.index) + downloadFinish(chapter, "download canceled", resetPageOffset, true) }.onFinally { postEvent(EventBus.UP_DOWNLOAD, book.bookUrl) }.start() @@ -375,12 +376,14 @@ object CacheBook { private fun downloadFinish( chapter: BookChapter, content: String, - resetPageOffset: Boolean = false + resetPageOffset: Boolean = false, + canceled: Boolean = false ) { if (ReadBook.book?.bookUrl == book.bookUrl) { ReadBook.contentLoadFinish( book, chapter, content, resetPageOffset = resetPageOffset, + canceled = canceled ) } } diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt index 07cba50b1..e4486b757 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -562,7 +562,7 @@ object ReadBook : CoroutineScope by MainScope() { it, upContent, resetPageOffset, - success + success = success ) } ?: download( downloadScope, @@ -685,10 +685,11 @@ object ReadBook : CoroutineScope by MainScope() { content: String, upContent: Boolean = true, resetPageOffset: Boolean, + canceled: Boolean = false, success: (() -> Unit)? = null ) { removeLoading(chapter.index) - if (chapter.index !in durChapterIndex - 1..durChapterIndex + 1) { + if (canceled || chapter.index !in durChapterIndex - 1..durChapterIndex + 1) { return } Coroutine.async {