From 89bfa966318ad27c4f8913abbba55a1db6219f5c Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Sun, 7 Jul 2024 14:57:29 +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 --- .../book/changesource/ChangeBookSourceViewModel.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt index 4c093a516..8f069375e 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceViewModel.kt @@ -64,6 +64,7 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a private var searchBookList = arrayListOf() private val searchBooks = Collections.synchronizedList(arrayListOf()) private val tocMap = ConcurrentHashMap>() + private var tocMapChapterCount = 0 private val contentProcessor by lazy { ContentProcessor.get(oldBook!!) } @@ -176,6 +177,9 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a } searchCallback?.upAdapter() bookSourceParts.clear() + tocMap.clear() + bookMap.clear() + tocMapChapterCount = 0 val searchGroup = AppConfig.searchGroup if (searchGroup.isBlank()) { bookSourceParts.addAll(appDb.bookSourceDao.allEnabledPart) @@ -197,6 +201,9 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a execute { stopSearch() bookSourceParts.clear() + tocMap.clear() + bookMap.clear() + tocMapChapterCount = 0 bookSourceParts.add(appDb.bookSourceDao.getBookSourcePart(origin)!!) searchBooks.removeIf { it.origin == origin } initSearchPool() @@ -269,7 +276,10 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a for (chapter in chapters) { chapter.internString() } - tocMap[book.bookUrl] = chapters + if (tocMapChapterCount < 30000) { + tocMapChapterCount += chapters.size + tocMap[book.bookUrl] = chapters + } bookMap[book.bookUrl] = book book.releaseHtmlData() if (AppConfig.changeSourceLoadWordCount) {