From 6dd88c026d02a907c4cf409a30c0c915812ab3c0 Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 16 Mar 2023 10:22: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/toc/TocActivity.kt | 37 +++++++++++++------ app/src/main/res/menu/book_toc.xml | 6 +++ 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt b/app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt index ecf988bb8..a911c097b 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt @@ -13,6 +13,7 @@ import androidx.fragment.app.FragmentPagerAdapter import com.google.android.material.tabs.TabLayout import io.legado.app.R import io.legado.app.base.VMBaseActivity +import io.legado.app.data.entities.Book import io.legado.app.databinding.ActivityChapterListBinding import io.legado.app.help.book.isLocalTxt import io.legado.app.help.config.AppConfig @@ -99,7 +100,10 @@ class TocActivity : VMBaseActivity(), } override fun onMenuOpened(featureId: Int, menu: Menu): Boolean { - menu.findItem(R.id.menu_use_replace)?.isChecked = AppConfig.tocUiUseReplace + menu.findItem(R.id.menu_use_replace)?.isChecked = + AppConfig.tocUiUseReplace + menu.findItem(R.id.menu_split_long_chapter)?.isChecked = + viewModel.bookData.value?.getSplitLongChapter() == true return super.onMenuOpened(featureId, menu) } @@ -108,6 +112,13 @@ class TocActivity : VMBaseActivity(), R.id.menu_toc_regex -> showDialogFragment( TxtTocRuleDialog(viewModel.bookData.value?.tocUrl) ) + R.id.menu_split_long_chapter -> { + viewModel.bookData.value?.let { book -> + item.isChecked = !item.isChecked + book.setSplitLongChapter(item.isChecked) + upBookAndToc(book) + } + } R.id.menu_reverse_toc -> viewModel.reverseToc { viewModel.chapterListCallBack?.upChapterList(searchView?.query?.toString()) setResult(RESULT_OK, Intent().apply { @@ -128,16 +139,20 @@ class TocActivity : VMBaseActivity(), override fun onTocRegexDialogResult(tocRegex: String) { viewModel.bookData.value?.let { book -> book.tocUrl = tocRegex - waitDialog.show() - viewModel.upBookTocRule(book) { - waitDialog.dismiss() - ReadBook.book?.let { readBook -> - if (readBook == book) { - ReadBook.book = book - ReadBook.chapterSize = book.totalChapterNum - ReadBook.upMsg(null) - ReadBook.loadContent(resetPageOffset = true) - } + upBookAndToc(book) + } + } + + private fun upBookAndToc(book: Book) { + waitDialog.show() + viewModel.upBookTocRule(book) { + waitDialog.dismiss() + ReadBook.book?.let { readBook -> + if (readBook == book) { + ReadBook.book = book + ReadBook.chapterSize = book.totalChapterNum + ReadBook.upMsg(null) + ReadBook.loadContent(resetPageOffset = true) } } } diff --git a/app/src/main/res/menu/book_toc.xml b/app/src/main/res/menu/book_toc.xml index ec5e26f35..a0e42d801 100644 --- a/app/src/main/res/menu/book_toc.xml +++ b/app/src/main/res/menu/book_toc.xml @@ -19,6 +19,12 @@ android:title="@string/txt_toc_rule" app:showAsAction="never" /> + +