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 5b1131f22..7ae26ffa0 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -31,6 +31,7 @@ object ReadBook : CoroutineScope by MainScope() { var book: Book? = null var callBack: CallBack? = null var inBookshelf = false + var tocChanged = false var chapterSize = 0 var durChapterIndex = 0 var durChapterPos = 0 @@ -65,7 +66,7 @@ object ReadBook : CoroutineScope by MainScope() { fun upData(book: Book) { ReadBook.book = book chapterSize = appDb.bookChapterDao.getChapterCount(book.bookUrl) - if (durChapterIndex != book.durChapterIndex) { + if (durChapterIndex != book.durChapterIndex || tocChanged) { durChapterIndex = book.durChapterIndex durChapterPos = book.durChapterPos clearTextChapter() diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt index 7a48b95c9..fb0830572 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoActivity.kt @@ -91,6 +91,7 @@ class BookInfoActivity : viewModel.upEditBook() } } + private var tocChanged = false override val binding by viewBinding(ActivityBookInfoBinding::inflate) override val viewModel by viewModels() @@ -189,6 +190,7 @@ class BookInfoActivity : R.id.menu_log -> showDialogFragment() R.id.menu_limit_content_length -> { upLoading(true) + tocChanged = true viewModel.bookData.value?.let { it.setLimitContentLength(!item.isChecked) viewModel.loadBookInfo(it, false) @@ -441,8 +443,10 @@ class BookInfoActivity : Intent(this, ReadBookActivity::class.java) .putExtra("bookUrl", book.bookUrl) .putExtra("inBookshelf", viewModel.inBookshelf) + .putExtra("tocChanged", tocChanged) ) } + tocChanged = false } override val oldBook: 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 de573fed9..a83bc0352 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 @@ -40,6 +40,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { fun initData(intent: Intent) { execute { ReadBook.inBookshelf = intent.getBooleanExtra("inBookshelf", true) + ReadBook.tocChanged = intent.getBooleanExtra("tocChanged", false) val bookUrl = intent.getStringExtra("bookUrl") val book = when { bookUrl.isNullOrEmpty() -> appDb.bookDao.lastReadBook