From f0ebfaa4430f6583922bfa0569731c88f9a54ecd Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Tue, 12 Sep 2023 17:25:33 +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/webBook/SearchModel.kt | 9 +++++++-- .../java/io/legado/app/ui/book/search/SearchActivity.kt | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/webBook/SearchModel.kt b/app/src/main/java/io/legado/app/model/webBook/SearchModel.kt index 1ac0e0c06..c2f088398 100644 --- a/app/src/main/java/io/legado/app/model/webBook/SearchModel.kt +++ b/app/src/main/java/io/legado/app/model/webBook/SearchModel.kt @@ -28,6 +28,7 @@ class SearchModel(private val scope: CoroutineScope, private val callBack: CallB private var tasks = CompositeCoroutine() private var bookSourceList = arrayListOf() private var searchBooks = arrayListOf() + private val emptyBookSource = BookSource() @Volatile private var searchIndex = -1 @@ -76,6 +77,7 @@ class SearchModel(private val scope: CoroutineScope, private val callBack: CallB return } searchIndex++ + val searchIndex = searchIndex val source = bookSourceList[searchIndex] val searchPool = searchPool ?: return val task = WebBook.searchBook( @@ -91,7 +93,7 @@ class SearchModel(private val scope: CoroutineScope, private val callBack: CallB onSuccess(searchId, it) } .onFinally { - onFinally(searchId) + onFinally(searchId, searchIndex) } tasks.add(task) } @@ -107,12 +109,15 @@ class SearchModel(private val scope: CoroutineScope, private val callBack: CallB } @Synchronized - private fun onFinally(searchId: Long) { + private fun onFinally(searchId: Long, index: Int) { if (searchIndex < bookSourceList.lastIndex) { search(searchId) } else { searchIndex++ } + if (index <= bookSourceList.lastIndex) { + bookSourceList[index] = emptyBookSource + } if (searchIndex >= bookSourceList.lastIndex + min(bookSourceList.size, threadCount) ) { diff --git a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt index 6ac56c912..b0e9e29b2 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt @@ -212,6 +212,7 @@ class SearchActivity : VMBaseActivity