kunfei 3 lat temu
rodzic
commit
05f47a8d07

+ 7 - 3
app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt

@@ -126,13 +126,17 @@ class TocActivity : VMBaseActivity<ActivityChapterListBinding, TocViewModel>(),
     }
     }
 
 
     override fun onTocRegexDialogResult(tocRegex: String) {
     override fun onTocRegexDialogResult(tocRegex: String) {
-        ReadBook.book?.let { book ->
+        viewModel.bookData.value?.let { book ->
             book.tocUrl = tocRegex
             book.tocUrl = tocRegex
             waitDialog.show()
             waitDialog.show()
-            ReadBook.callBack?.loadChapterList(book) {
-                viewModel.initBook(book.bookUrl)
+            viewModel.upBookTocRule(book) {
                 waitDialog.dismiss()
                 waitDialog.dismiss()
             }
             }
+            ReadBook.book?.let { readBook ->
+                if (readBook == book) {
+                    readBook.tocUrl = tocRegex
+                }
+            }
         }
         }
     }
     }
 
 

+ 21 - 0
app/src/main/java/io/legado/app/ui/book/toc/TocViewModel.kt

@@ -6,6 +6,8 @@ import androidx.lifecycle.MutableLiveData
 import io.legado.app.base.BaseViewModel
 import io.legado.app.base.BaseViewModel
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
+import io.legado.app.model.ReadBook
+import io.legado.app.model.localBook.LocalBook
 
 
 class TocViewModel(application: Application) : BaseViewModel(application) {
 class TocViewModel(application: Application) : BaseViewModel(application) {
     var bookUrl: String = ""
     var bookUrl: String = ""
@@ -23,6 +25,25 @@ class TocViewModel(application: Application) : BaseViewModel(application) {
         }
         }
     }
     }
 
 
+    fun upBookTocRule(book: Book, finally: () -> Unit) {
+        execute {
+            execute {
+                appDb.bookDao.update(book)
+                LocalBook.getChapterList(book).let {
+                    book.latestChapterTime = System.currentTimeMillis()
+                    appDb.bookChapterDao.delByBook(book.bookUrl)
+                    appDb.bookChapterDao.insert(*it.toTypedArray())
+                    appDb.bookDao.update(book)
+                    ReadBook.chapterSize = it.size
+                    ReadBook.upMsg(null)
+                    ReadBook.loadContent(resetPageOffset = true)
+                }
+            }
+        }.onFinally {
+            finally.invoke()
+        }
+    }
+
     fun reverseToc(success: (book: Book) -> Unit) {
     fun reverseToc(success: (book: Book) -> Unit) {
         execute {
         execute {
             bookData.value?.apply {
             bookData.value?.apply {