diff --git a/app/src/main/java/io/legado/app/ui/book/search/SearchScopeDialog.kt b/app/src/main/java/io/legado/app/ui/book/search/SearchScopeDialog.kt index 99d4d1dc8..d6e79d301 100644 --- a/app/src/main/java/io/legado/app/ui/book/search/SearchScopeDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/search/SearchScopeDialog.kt @@ -14,6 +14,7 @@ import io.legado.app.databinding.DialogSearchScopeBinding import io.legado.app.databinding.ItemCheckBoxBinding import io.legado.app.databinding.ItemRadioButtonBinding import io.legado.app.lib.theme.primaryColor +import io.legado.app.utils.applyTint import io.legado.app.utils.setLayout import io.legado.app.utils.viewbindingdelegate.viewBinding import kotlinx.coroutines.Dispatchers.IO @@ -24,8 +25,9 @@ class SearchScopeDialog : BaseDialogFragment(R.layout.dialog_search_scope) { private val binding by viewBinding(DialogSearchScopeBinding::bind) val callback: Callback get() = parentFragment as? Callback ?: activity as Callback - var groups = arrayListOf() - var sources = arrayListOf() + var groups: List = arrayListOf() + var sources: List = arrayListOf() + val adapter by lazy { RecyclerAdapter() @@ -39,14 +41,20 @@ class SearchScopeDialog : BaseDialogFragment(R.layout.dialog_search_scope) { override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { binding.toolBar.setBackgroundColor(primaryColor) binding.recyclerView.adapter = adapter + initMenu() initOtherView() initData() upData() } + private fun initMenu() { + binding.toolBar.inflateMenu(R.menu.change_source) + binding.toolBar.menu.applyTint(requireContext()) + } private fun initOtherView() { - binding.rgScope.setOnCheckedChangeListener { _, _ -> + binding.rgScope.setOnCheckedChangeListener { group, checkedId -> + binding.toolBar.menu.findItem(R.id.menu_screen)?.isVisible = checkedId == R.id.rb_source upData() } binding.tvCancel.setOnClickListener { @@ -73,9 +81,11 @@ class SearchScopeDialog : BaseDialogFragment(R.layout.dialog_search_scope) { private fun initData() { launch { - withContext(IO) { - groups.addAll(appDb.bookSourceDao.allGroups) - sources.addAll(appDb.bookSourceDao.allEnabled) + groups = withContext(IO) { + appDb.bookSourceDao.allGroups + } + sources = withContext(IO) { + appDb.bookSourceDao.allEnabled } upData() } diff --git a/app/src/main/res/menu/book_search_scope.xml b/app/src/main/res/menu/book_search_scope.xml new file mode 100644 index 000000000..1647d0321 --- /dev/null +++ b/app/src/main/res/menu/book_search_scope.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file