diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 8dc70a332..185f0bd15 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -73,9 +73,7 @@ class ReadBookActivity : ReadBookBaseActivity(), private val tocActivity = registerForActivityResult(TocActivityResult()) { it?.let { - if (it.first != ReadBook.durChapterIndex) { - viewModel.openChapter(it.first, it.second) - } + viewModel.openChapter(it.first, it.second) } } private val sourceEditActivity = 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 2b6057acd..ffe391f68 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 @@ -246,9 +246,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) { } fun openChapter(index: Int, durChapterPos: Int = 0, success: (() -> Unit)? = null) { - ReadBook.prevTextChapter = null - ReadBook.curTextChapter = null - ReadBook.nextTextChapter = null + ReadBook.clearTextChapter() ReadBook.callBack?.upContent() if (index != ReadBook.durChapterIndex) { ReadBook.durChapterIndex = index diff --git a/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt b/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt index 609683d90..b6e831613 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt @@ -66,11 +66,13 @@ class BookmarkFragment : VMBaseFragment(R.layout.fragment_bookmark override fun onClick(bookmark: Bookmark) { - val bookmarkData = Intent() - bookmarkData.putExtra("index", bookmark.chapterIndex) - bookmarkData.putExtra("chapterPos", bookmark.chapterPos) - activity?.setResult(Activity.RESULT_OK, bookmarkData) - activity?.finish() + activity?.run { + setResult(Activity.RESULT_OK, Intent().apply { + putExtra("index", bookmark.chapterIndex) + putExtra("chapterPos", bookmark.chapterPos) + }) + finish() + } } override fun onLongClick(bookmark: Bookmark) { diff --git a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt index e2ba1cfa1..63e18bf22 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt @@ -137,8 +137,10 @@ class ChapterListFragment : VMBaseFragment(R.layout.fragment_chapt } override fun openChapter(bookChapter: BookChapter) { - activity?.setResult(RESULT_OK, Intent().putExtra("index", bookChapter.index)) - activity?.finish() + activity?.run { + setResult(RESULT_OK, Intent().putExtra("index", bookChapter.index)) + finish() + } } } \ No newline at end of file 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 57a213a49..7152219a0 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 @@ -1,5 +1,6 @@ package io.legado.app.ui.book.toc +import android.content.Intent import android.os.Bundle import android.view.Menu import android.view.MenuItem @@ -78,11 +79,25 @@ class TocActivity : VMBaseActivity() { override fun onCompatOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { - R.id.menu_reverse_toc -> viewModel.reverseToc() + R.id.menu_reverse_toc -> viewModel.reverseToc { + setResult(RESULT_OK, Intent().apply { + putExtra("index", it.durChapterIndex) + putExtra("chapterPos", it.durChapterPos) + }) + } } return super.onCompatOptionsItemSelected(item) } + override fun onBackPressed() { + if (tabLayout.isGone) { + searchView?.onActionViewCollapsed() + tabLayout.visible() + } else { + super.onBackPressed() + } + } + private inner class TabFragmentPageAdapter : FragmentStateAdapter(this) { override fun getItemCount(): Int { @@ -98,12 +113,4 @@ class TocActivity : VMBaseActivity() { } - override fun onBackPressed() { - if (tabLayout.isGone) { - searchView?.onActionViewCollapsed() - tabLayout.visible() - } else { - super.onBackPressed() - } - } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/toc/TocViewModel.kt b/app/src/main/java/io/legado/app/ui/book/toc/TocViewModel.kt index a20df2249..992101490 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/TocViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/TocViewModel.kt @@ -22,10 +22,10 @@ class TocViewModel(application: Application) : BaseViewModel(application) { } } - fun reverseToc() { + fun reverseToc(success: (book: Book) -> Unit) { execute { - bookData.value?.let { - it.setReverseToc(!it.getReverseToc()) + bookData.value?.apply { + setReverseToc(!getReverseToc()) val toc = appDb.bookChapterDao.getChapterList(bookUrl) val newToc = toc.reversed() newToc.forEachIndexed { index, bookChapter -> @@ -33,6 +33,8 @@ class TocViewModel(application: Application) : BaseViewModel(application) { } appDb.bookChapterDao.insert(*newToc.toTypedArray()) } + }.onSuccess { + it?.let(success) } }