From e84b20e7bb1ee47ef7f6b099ddc0801268e7dcbc Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Wed, 8 Mar 2023 08:23:04 +0800 Subject: [PATCH] fix Can't create handler inside thread that has not called Looper.prepare () --- .../legado/app/ui/book/info/BookInfoViewModel.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt index 9ea491077..ba8546c68 100644 --- a/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt @@ -30,6 +30,7 @@ import io.legado.app.model.webBook.WebBook import io.legado.app.utils.isContentScheme import io.legado.app.utils.postEvent import io.legado.app.utils.toastOnUi +import io.legado.app.utils.runOnUI import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers.IO @@ -274,7 +275,11 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { fun importOrDownloadWebFile(webFile: WebFile, success: ((T) -> Unit)?) { bookSource ?: return execute { - callBack?.onWebFileProcessStart() + callBack?.run { + runOnUI { + onWebFileProcessStart() + } + } if (webFile.isSupported) { val book = LocalBook.importFileOnLine(webFile.url, webFile.name, bookSource) changeToLocalBook(book) @@ -286,8 +291,13 @@ class BookInfoViewModel(application: Application) : BaseViewModel(application) { }.onError { context.toastOnUi("ImportWebFileError\n${it.localizedMessage}") }.onFinally { - callBack?.onWebFileProcessFinally() - } + callBack?.run { + runOnUI { + onWebFileProcessFinally() + } + } + + } } fun changeTo(source: BookSource, book: Book, toc: List) {