Horis пре 2 година
родитељ
комит
528e422ec2

+ 1 - 3
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("没有权限访问")

+ 1 - 3
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)
     }
 
     /**

+ 8 - 2
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 {