From 9c4a16a57f0eb02686573244cf4c4c08a8a3e86d Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Wed, 31 May 2023 23:56:04 +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 --- .../changesource/ChangeBookSourceDialog.kt | 25 ++++++++++++++++--- .../changesource/ChangeBookSourceViewModel.kt | 3 ++- 2 files changed, 23 insertions(+), 5 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 7d1ac18f5..9a4a1ba47 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 @@ -41,6 +41,7 @@ import io.legado.app.utils.setLayout import io.legado.app.utils.startActivity import io.legado.app.utils.toastOnUi import io.legado.app.utils.viewbindingdelegate.viewBinding +import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.delay import kotlinx.coroutines.flow.conflate import kotlinx.coroutines.launch @@ -79,7 +80,7 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ cancelButton() okButton { AppConfig.searchGroup = "" - upGroupMenu() + upGroupMenuName() viewModel.startSearch() } } @@ -248,9 +249,12 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ } else { AppConfig.searchGroup = item.title.toString() } - upGroupMenu() - viewModel.startOrStopSearch() - viewModel.refresh() + upGroupMenuName() + launch(IO) { + if (viewModel.refresh()) { + viewModel.startOrStopSearch() + } + } } } return false @@ -373,6 +377,19 @@ class ChangeBookSourceDialog() : BaseDialogFragment(R.layout.dialog_book_change_ } } + /** + * 更新分组菜单名 + */ + private fun upGroupMenuName() { + val menuGroup = binding.toolBar.menu.findItem(R.id.menu_group) + val searchGroup = AppConfig.searchGroup + if (searchGroup.isEmpty()) { + menuGroup?.title = getString(R.string.group) + } else { + menuGroup?.title = getString(R.string.group) + "($searchGroup)" + } + } + override fun observeLiveBus() { observeEvent(EventBus.SOURCE_CHANGED) { adapter.notifyItemRangeChanged( 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 9933b101d..0a5494c15 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 @@ -137,12 +137,13 @@ open class ChangeBookSourceViewModel(application: Application) : BaseViewModel(a searchIndex = -1 } - fun refresh() { + fun refresh(): Boolean { getDbSearchBooks().let { searchBooks.clear() searchBooks.addAll(it) searchCallback?.upAdapter() } + return searchBooks.isEmpty() } /**