From a659c03ff9fa933d050552e92352b9bccd6509c9 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Mon, 10 Oct 2022 13:18:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(ReadBook):=20=E6=B7=BB=E5=8A=A0=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E8=BF=9B=E5=BA=A6=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/model/ReadBook.kt | 25 +++++++++++++++++++ .../app/ui/book/read/ReadBookActivity.kt | 16 ++++++------ 2 files changed, 34 insertions(+), 7 deletions(-) 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 96adb6e3e..f02052e84 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -42,6 +42,30 @@ object ReadBook : CoroutineScope by MainScope() { private val loadingChapters = arrayListOf() private val readRecord = ReadRecord() var readStartTime: Long = System.currentTimeMillis() + /* 跳转历史记录 */ + var bookProgressHistory: List? = null + /* 跳转进度前进度记录 */ + var lastBookPress: BookProgress? = null + + //暂时保存跳转前进度 + fun saveCurrentBookProcess() { + lastBookPress = book?.let { BookProgress(it) } + } + //恢复跳转前进度 + fun restoreLastBookProcess() { + lastBookPress?.let { + durChapterPos = it.durChapterPos + if (durChapterIndex != it.durChapterIndex) { + clearTextChapter() + durChapterIndex = it.durChapterIndex + } + callBack?.upContent() + saveRead() + loadContent(resetPageOffset = true) { + lastBookPress = null + } + } + } fun resetData(book: Book) { ReadBook.book = book @@ -55,6 +79,7 @@ object ReadBook : CoroutineScope by MainScope() { callBack?.upMenuView() callBack?.upPageAnim() upWebBook(book) + lastBookPress = null synchronized(this) { loadingChapters.clear() } 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 f0039099a..e0c6dc3df 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 @@ -926,13 +926,6 @@ class ReadBookActivity : BaseReadBookActivity(), } } - /** - * 跳转到指定章节 - */ - override fun skipToChapter(index: Int) { - viewModel.openChapter(index) - } - /** * 打开搜索界面 */ @@ -1141,11 +1134,20 @@ class ReadBookActivity : BaseReadBookActivity(), } } + /* 回复到 全文搜索/进度条跳转前的位置 */ + + /* 进度条跳转到指定章节 */ + override fun skipToChapter(index: Int) { + viewModel.openChapter(index) + } + + /* 全文搜索跳转 */ override fun navigateToSearch(searchResult: SearchResult, index: Int) { viewModel.searchResultIndex = index skipToSearch(searchResult) } + /* 全文搜索跳转 */ private fun skipToSearch(searchResult: SearchResult) { val previousResult = binding.searchMenu.previousSearchResult