From 2df5c58a0a989c993c1049fd758cb7352489b53f Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 10 Feb 2022 22:35:12 +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 --- .../java/io/legado/app/ui/book/toc/ChapterListAdapter.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt index 953510d0e..2a41a3703 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt @@ -18,6 +18,8 @@ import io.legado.app.utils.gone import io.legado.app.utils.visible import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers.IO +import kotlinx.coroutines.Job +import kotlinx.coroutines.isActive import kotlinx.coroutines.launch import java.util.concurrent.ConcurrentHashMap @@ -56,12 +58,17 @@ class ChapterListAdapter(context: Context, val callback: Callback) : } private val useReplace get() = AppConfig.tocUiUseReplace && callback.book?.getUseReplaceRule() == true + private var upDisplayTileJob: Job? = null fun upDisplayTile() { - callback.scope.launch(IO) { + upDisplayTileJob?.cancel() + upDisplayTileJob = callback.scope.launch(IO) { val replaceRules = replaceRules val useReplace = useReplace getItems().forEach { + if (!isActive) { + return@launch + } if (displayTileMap[it.index] == null) { displayTileMap[it.index] = it.getDisplayTitle(replaceRules, useReplace) }