From 8cd96109920092d830a1f6118986bf3e76b094cc Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Sun, 17 Mar 2024 17:08:34 +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/ChangeBookSourceDialog.kt | 7 ++++++- .../app/ui/book/changesource/ChangeBookSourceViewModel.kt | 2 ++ .../app/ui/book/changesource/ChangeChapterSourceDialog.kt | 7 ++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt index 17abc34ae..9cec585ab 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeBookSourceDialog.kt @@ -80,7 +80,7 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ val searchGroup = AppConfig.searchGroup if (searchGroup.isNotEmpty()) { lifecycleScope.launch { - alert("搜索结果为空") { + context?.alert("搜索结果为空") { setMessage("${searchGroup}分组搜索结果为空,是否切换到全部分组") cancelButton() okButton { @@ -112,6 +112,11 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ viewModel.searchFinishCallback = searchFinishCallback } + override fun onDestroy() { + super.onDestroy() + viewModel.searchFinishCallback = null + } + private fun showTitle() { binding.toolBar.title = viewModel.name binding.toolBar.subtitle = viewModel.author 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 b2dc8667c..acdaa7ee4 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 @@ -31,6 +31,7 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.asCoroutineDispatcher import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.ensureActive import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.collect @@ -214,6 +215,7 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a } }.onCompletion { searchStateData.postValue(false) + ensureActive() searchFinishCallback?.invoke(searchBooks.isEmpty()) }.catch { AppLog.put("换源搜索出错\n${it.localizedMessage}", it) diff --git a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt index 7a20c1435..33bbf8273 100644 --- a/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/changesource/ChangeChapterSourceDialog.kt @@ -89,7 +89,7 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c val searchGroup = AppConfig.searchGroup if (searchGroup.isNotEmpty()) { lifecycleScope.launch { - alert("搜索结果为空") { + context?.alert("搜索结果为空") { setMessage("${searchGroup}分组搜索结果为空,是否切换到全部分组") noButton() yesButton { @@ -128,6 +128,11 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c } } + override fun onDestroy() { + super.onDestroy() + viewModel.searchFinishCallback = null + } + private fun showTitle() { binding.toolBar.title = viewModel.chapterTitle }