反转目录刷新正文

pull/1013/head
gedoor 4 years ago
parent 971dc3f2c5
commit a91e7b4e78
  1. 4
      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,9 +73,7 @@ class ReadBookActivity : ReadBookBaseActivity(),
private val tocActivity = private val tocActivity =
registerForActivityResult(TocActivityResult()) { registerForActivityResult(TocActivityResult()) {
it?.let { it?.let {
if (it.first != ReadBook.durChapterIndex) { viewModel.openChapter(it.first, it.second)
viewModel.openChapter(it.first, it.second)
}
} }
} }
private val sourceEditActivity = private val sourceEditActivity =

@ -246,9 +246,7 @@ class ReadBookViewModel(application: Application) : BaseViewModel(application) {
} }
fun openChapter(index: Int, durChapterPos: Int = 0, success: (() -> Unit)? = null) { fun openChapter(index: Int, durChapterPos: Int = 0, success: (() -> Unit)? = null) {
ReadBook.prevTextChapter = null ReadBook.clearTextChapter()
ReadBook.curTextChapter = null
ReadBook.nextTextChapter = null
ReadBook.callBack?.upContent() ReadBook.callBack?.upContent()
if (index != ReadBook.durChapterIndex) { if (index != ReadBook.durChapterIndex) {
ReadBook.durChapterIndex = index ReadBook.durChapterIndex = index

@ -66,11 +66,13 @@ class BookmarkFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_bookmark
override fun onClick(bookmark: Bookmark) { override fun onClick(bookmark: Bookmark) {
val bookmarkData = Intent() activity?.run {
bookmarkData.putExtra("index", bookmark.chapterIndex) setResult(Activity.RESULT_OK, Intent().apply {
bookmarkData.putExtra("chapterPos", bookmark.chapterPos) putExtra("index", bookmark.chapterIndex)
activity?.setResult(Activity.RESULT_OK, bookmarkData) putExtra("chapterPos", bookmark.chapterPos)
activity?.finish() })
finish()
}
} }
override fun onLongClick(bookmark: Bookmark) { override fun onLongClick(bookmark: Bookmark) {

@ -137,8 +137,10 @@ class ChapterListFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_chapt
} }
override fun openChapter(bookChapter: BookChapter) { override fun openChapter(bookChapter: BookChapter) {
activity?.setResult(RESULT_OK, Intent().putExtra("index", bookChapter.index)) activity?.run {
activity?.finish() setResult(RESULT_OK, Intent().putExtra("index", bookChapter.index))
finish()
}
} }
} }

@ -1,5 +1,6 @@
package io.legado.app.ui.book.toc package io.legado.app.ui.book.toc
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
@ -78,11 +79,25 @@ class TocActivity : VMBaseActivity<ActivityChapterListBinding, TocViewModel>() {
override fun onCompatOptionsItemSelected(item: MenuItem): Boolean { override fun onCompatOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) { 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) return super.onCompatOptionsItemSelected(item)
} }
override fun onBackPressed() {
if (tabLayout.isGone) {
searchView?.onActionViewCollapsed()
tabLayout.visible()
} else {
super.onBackPressed()
}
}
private inner class TabFragmentPageAdapter : FragmentStateAdapter(this) { private inner class TabFragmentPageAdapter : FragmentStateAdapter(this) {
override fun getItemCount(): Int { 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 { execute {
bookData.value?.let { bookData.value?.apply {
it.setReverseToc(!it.getReverseToc()) setReverseToc(!getReverseToc())
val toc = appDb.bookChapterDao.getChapterList(bookUrl) val toc = appDb.bookChapterDao.getChapterList(bookUrl)
val newToc = toc.reversed() val newToc = toc.reversed()
newToc.forEachIndexed { index, bookChapter -> newToc.forEachIndexed { index, bookChapter ->
@ -33,6 +33,8 @@ class TocViewModel(application: Application) : BaseViewModel(application) {
} }
appDb.bookChapterDao.insert(*newToc.toTypedArray()) appDb.bookChapterDao.insert(*newToc.toTypedArray())
} }
}.onSuccess {
it?.let(success)
} }
} }

Loading…
Cancel
Save