反转目录刷新正文

pull/1013/head
gedoor 4 years ago
parent 971dc3f2c5
commit a91e7b4e78
  1. 2
      app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt
  2. 4
      app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt
  3. 12
      app/src/main/java/io/legado/app/ui/book/toc/BookmarkFragment.kt
  4. 6
      app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt
  5. 25
      app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt
  6. 8
      app/src/main/java/io/legado/app/ui/book/toc/TocViewModel.kt

@ -73,11 +73,9 @@ class ReadBookActivity : ReadBookBaseActivity(),
private val tocActivity =
registerForActivityResult(TocActivityResult()) {
it?.let {
if (it.first != ReadBook.durChapterIndex) {
viewModel.openChapter(it.first, it.second)
}
}
}
private val sourceEditActivity =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
it ?: return@registerForActivityResult

@ -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

@ -66,11 +66,13 @@ class BookmarkFragment : VMBaseFragment<TocViewModel>(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) {

@ -137,8 +137,10 @@ class ChapterListFragment : VMBaseFragment<TocViewModel>(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()
}
}
}

@ -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<ActivityChapterListBinding, TocViewModel>() {
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<ActivityChapterListBinding, TocViewModel>() {
}
override fun onBackPressed() {
if (tabLayout.isGone) {
searchView?.onActionViewCollapsed()
tabLayout.visible()
} else {
super.onBackPressed()
}
}
}

@ -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)
}
}

Loading…
Cancel
Save