From fdfa9a3ff2c6c9187f56ed2049d9e3e33cb54a15 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Tue, 8 Feb 2022 07:55:52 +0800 Subject: [PATCH] =?UTF-8?q?txt=E7=9B=AE=E5=BD=95=E6=94=B9=E5=8F=98?= =?UTF-8?q?=E6=97=B6=E6=AD=A3=E6=96=87=E5=86=85=E5=AE=B9=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=8F=8A=E6=97=B6=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/model/ReadBook.kt | 3 ++- .../main/java/io/legado/app/ui/book/info/BookInfoActivity.kt | 4 ++++ .../main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) 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