From 46ea7d0f93543a3c56565f90dda609221d16d8f0 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Wed, 10 Jul 2024 17:10:37 +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 --- .../io/legado/app/ui/book/read/BaseReadBookActivity.kt | 4 +--- .../io/legado/app/ui/book/read/ReadBookActivity.kt | 4 +--- .../io/legado/app/ui/book/read/ReadBookViewModel.kt | 10 ++++++++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt index 9f733bced..612d0981a 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/BaseReadBookActivity.kt @@ -78,9 +78,7 @@ abstract class BaseReadBookActivity : FileDoc.fromUri(uri, true).find(book.originName)?.let { doc -> book.bookUrl = doc.uri.toString() book.save() - lifecycleScope.launch(IO) { - viewModel.loadChapterList(book) - } + viewModel.loadChapterList(book) } ?: ReadBook.upMsg("找不到文件") } } ?: ReadBook.upMsg("没有权限访问") diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 26123e91c..162025429 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -924,9 +924,7 @@ class ReadBookActivity : BaseReadBookActivity(), override fun loadChapterList(book: Book) { ReadBook.upMsg(getString(R.string.toc_updateing)) - lifecycleScope.launch(IO) { - viewModel.loadChapterList(book) - } + viewModel.loadChapterList(book) } /** diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index f5e274787..a9f5e8e44 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -109,7 +109,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { if (book.isLocal && !checkLocalBookFileExist(book)) { return } - if ((ReadBook.chapterSize == 0 || book.isLocalModified()) && !loadChapterList(book)) { + if ((ReadBook.chapterSize == 0 || book.isLocalModified()) && !loadChapterListAwait(book)) { return } ReadBook.upMsg(null) @@ -163,7 +163,13 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { /** * 加载目录 */ - suspend fun loadChapterList(book: Book): Boolean { + fun loadChapterList(book: Book) { + execute { + loadChapterListAwait(book) + } + } + + private suspend fun loadChapterListAwait(book: Book): Boolean { if (book.isLocal) { kotlin.runCatching { LocalBook.getChapterList(book).let {