From e214c2a8fd05f25d95f234fe045f42470383eb2a Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Mon, 20 Nov 2023 20:10:18 +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 --- .../app/ui/book/changesource/ChangeBookSourceViewModel.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 0fdc4d4f9..0ade572c8 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 @@ -200,7 +200,7 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a } ++searchIndex } - val source = bookSourceList[searchIndex] + val source = bookSourceList.getOrNull(searchIndex) ?: return bookSourceList[searchIndex] = emptyBookSource val task = execute( context = searchPool!!, @@ -227,9 +227,11 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a } }.timeout(60000L) .onError { + ensureActive() nextSearch() } .onSuccess { + ensureActive() nextSearch() } task.start() @@ -298,8 +300,9 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a searchCallback?.searchSuccess(searchBook) } + @Synchronized private fun nextSearch() { - synchronized(this) { + kotlin.runCatching { if (searchIndex < bookSourceList.lastIndex) { search() } else {