From 96be80aaaf7318725f95084f2b9789372e5bf992 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Sun, 25 Aug 2024 17:12:01 +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 --- .../main/java/io/legado/app/model/ReadBook.kt | 9 +++++++++ .../app/ui/book/read/ReadBookActivity.kt | 18 +++++++++--------- .../legado/app/ui/book/read/page/ReadView.kt | 4 ++-- 3 files changed, 20 insertions(+), 11 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 1a17e0577..8ec329eb7 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -193,6 +193,12 @@ object ReadBook : CoroutineScope by MainScope() { nextTextChapter = null } + fun clearSearchResult() { + curTextChapter?.clearSearchResult() + prevTextChapter?.clearSearchResult() + nextTextChapter?.clearSearchResult() + } + fun uploadProgress() { book?.let { launch(IO) { @@ -230,6 +236,7 @@ object ReadBook : CoroutineScope by MainScope() { hasNextPage = true it.getPage(durPageIndex)?.removePageAloudSpan() durChapterPos = nextPagePos + callBack?.cancelSelect() callBack?.upContent() saveRead(true) } @@ -885,6 +892,8 @@ object ReadBook : CoroutineScope by MainScope() { fun upPageAnim(upRecorder: Boolean = false) fun notifyBookChanged() + + fun cancelSelect() } } 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 2b9010f26..7b01da78f 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 @@ -852,8 +852,7 @@ class ReadBookActivity : BaseReadBookActivity(), */ override fun onMenuActionFinally() = binding.run { textActionMenu.dismiss() - readView.curPage.cancelSelect() - readView.isTextSelected = false + readView.cancelSelect() } private fun speak(text: String) { @@ -958,7 +957,6 @@ class ReadBookActivity : BaseReadBookActivity(), success: (() -> Unit)? ) { lifecycleScope.launch { - binding.readView.cancelSelect() binding.readView.upContent(relativePosition, resetPageOffset) if (relativePosition == 0) { upSeekBarProgress() @@ -973,7 +971,6 @@ class ReadBookActivity : BaseReadBookActivity(), resetPageOffset: Boolean, success: (() -> Unit)? ) = withContext(Main.immediate) { - binding.readView.cancelSelect() binding.readView.upContent(relativePosition, resetPageOffset) if (relativePosition == 0) { upSeekBarProgress() @@ -994,6 +991,12 @@ class ReadBookActivity : BaseReadBookActivity(), } } + override fun cancelSelect() { + runOnUiThread { + binding.readView.cancelSelect() + } + } + /** * 页面改变 */ @@ -1184,11 +1187,8 @@ class ReadBookActivity : BaseReadBookActivity(), isShowingSearchResult = false binding.searchMenu.invalidate() binding.searchMenu.invisible() - binding.readView.isTextSelected = false - ReadBook.curTextChapter?.clearSearchResult() - ReadBook.prevTextChapter?.clearSearchResult() - ReadBook.nextTextChapter?.clearSearchResult() - binding.readView.curPage.cancelSelect(true) + ReadBook.clearSearchResult() + binding.readView.cancelSelect(true) } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt index b3c5c9000..9a1c313ee 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/ReadView.kt @@ -254,9 +254,9 @@ class ReadView(context: Context, attrs: AttributeSet) : return true } - fun cancelSelect() { + fun cancelSelect(clearSearchResult: Boolean = false) { if (isTextSelected) { - curPage.cancelSelect() + curPage.cancelSelect(clearSearchResult) isTextSelected = false } }