添加批量换源

This commit is contained in:
kunfei
2022-04-03 18:11:43 +08:00
parent 8bdb8b1e91
commit 3baa6c07aa
4 changed files with 193 additions and 0 deletions
@@ -169,6 +169,7 @@ class ArrangeBookActivity : VMBaseActivity<ActivityArrangeBookBinding, ArrangeBo
R.id.menu_update_disable ->
viewModel.upCanUpdate(adapter.selectedBooks(), false)
R.id.menu_add_to_group -> selectGroup(addToGroupRequestCode, 0)
R.id.menu_change_source -> showDialogFragment<SourcePickerDialog>()
}
return false
}
@@ -0,0 +1,89 @@
package io.legado.app.ui.book.arrange
import android.content.Context
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.widget.SearchView
import androidx.recyclerview.widget.LinearLayoutManager
import io.legado.app.R
import io.legado.app.base.BaseDialogFragment
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.RecyclerAdapter
import io.legado.app.data.entities.BookSource
import io.legado.app.databinding.DialogSourcePickerBinding
import io.legado.app.databinding.ItemTextBinding
import io.legado.app.lib.theme.primaryColor
import io.legado.app.lib.theme.primaryTextColor
import io.legado.app.utils.applyTint
import io.legado.app.utils.dpToPx
import io.legado.app.utils.setLayout
import io.legado.app.utils.viewbindingdelegate.viewBinding
import splitties.views.rightPadding
class SourcePickerDialog : BaseDialogFragment(R.layout.dialog_source_picker) {
private val binding by viewBinding(DialogSourcePickerBinding::bind)
private val searchView: SearchView by lazy {
binding.toolBar.findViewById(R.id.search_view)
}
private val adapter by lazy {
SourceAdapter(requireContext())
}
override fun onStart() {
super.onStart()
setLayout(1f, ViewGroup.LayoutParams.MATCH_PARENT)
}
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
initView()
}
private fun initView() {
binding.toolBar.setBackgroundColor(primaryColor)
binding.toolBar.title = "选择书源"
binding.toolBar.rightPadding = 16.dpToPx()
binding.recyclerView.layoutManager = LinearLayoutManager(requireContext())
binding.recyclerView.adapter = adapter
searchView.applyTint(primaryTextColor)
searchView.onActionViewExpanded()
searchView.isSubmitButtonEnabled = true
searchView.queryHint = getString(R.string.search_book_source)
searchView.clearFocus()
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
return false
}
override fun onQueryTextChange(newText: String?): Boolean {
return false
}
})
}
inner class SourceAdapter(context: Context) :
RecyclerAdapter<BookSource, ItemTextBinding>(context) {
override fun getViewBinding(parent: ViewGroup): ItemTextBinding {
return ItemTextBinding.inflate(inflater, parent, false)
}
override fun convert(
holder: ItemViewHolder,
binding: ItemTextBinding,
item: BookSource,
payloads: MutableList<Any>
) {
binding.textView.text = item.getDisPlayNameGroup()
}
override fun registerListener(holder: ItemViewHolder, binding: ItemTextBinding) {
}
}
}
@@ -98,6 +98,11 @@ class SelectActionBar @JvmOverloads constructor(
btnRevertSelection.isClickable = isClickable
btnSelectActionMain.isEnabled = isClickable
btnSelectActionMain.isClickable = isClickable
if (isClickable) {
ivMenuMore.setColorFilter(context.primaryTextColor)
} else {
ivMenuMore.setColorFilter(context.secondaryTextColor)
}
ivMenuMore.isEnabled = isClickable
ivMenuMore.isClickable = isClickable
}