From f632d3f9361e9e3d38f9dd0b766f66b7b0603971 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Mon, 26 Feb 2024 18:12:23 +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 | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 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 10f6de8f7..1873abc2f 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -288,21 +288,26 @@ object ReadBook : CoroutineScope by MainScope() { } fun setPageIndex(index: Int) { - val textChapter = curTextChapter - if (textChapter != null) { - val pageIndex = durPageIndex - if (index > pageIndex) { - textChapter.getPage(index - 2)?.recycleRecorders() - } - if (index < pageIndex) { - textChapter.getPage(index + 3)?.recycleRecorders() - } - } + recycleRecorders(durPageIndex, index) durChapterPos = curTextChapter?.getReadLength(index) ?: index saveRead(true) curPageChanged(true) } + fun recycleRecorders(beforeIndex: Int, afterIndex: Int) { + executor.execute { + val textChapter = curTextChapter + if (textChapter != null) { + if (afterIndex > beforeIndex) { + textChapter.getPage(afterIndex - 2)?.recycleRecorders() + } + if (afterIndex < beforeIndex) { + textChapter.getPage(afterIndex + 3)?.recycleRecorders() + } + } + } + } + fun openChapter(index: Int, durChapterPos: Int = 0, success: (() -> Unit)? = null) { if (index < chapterSize) { clearTextChapter()