pull/32/head
kunfei 5 years ago
parent 998ce1815f
commit c36d08c071
  1. 23
      app/src/main/java/io/legado/app/ui/main/booksource/BookSourceAdapter.kt
  2. 5
      app/src/main/java/io/legado/app/ui/main/booksource/BookSourceFragment.kt

@ -5,6 +5,7 @@ import android.view.Menu
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.PopupMenu import android.widget.PopupMenu
import androidx.paging.PagedList
import androidx.paging.PagedListAdapter import androidx.paging.PagedListAdapter
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -33,7 +34,7 @@ class BookSourceAdapter : PagedListAdapter<BookSource, BookSourceAdapter.MyViewH
} }
var callBack: CallBack? = null var callBack: CallBack? = null
val checkedList = HashSet<String>() private val checkedList = HashSet<String>()
val itemTouchCallbackListener = object : OnItemTouchCallbackListener { val itemTouchCallbackListener = object : OnItemTouchCallbackListener {
override fun onSwiped(adapterPosition: Int) { override fun onSwiped(adapterPosition: Int) {
@ -56,6 +57,25 @@ class BookSourceAdapter : PagedListAdapter<BookSource, BookSourceAdapter.MyViewH
} }
} }
fun selectAll() {
currentList?.let {
if (checkedList.size == it.size) {
checkedList.clear()
notifyDataSetChanged()
} else {
for (item in it) {
item?.let { checkedList.add(item.origin) }
}
notifyDataSetChanged()
}
}
}
override fun onCurrentListChanged(previousList: PagedList<BookSource>?, currentList: PagedList<BookSource>?) {
super.onCurrentListChanged(previousList, currentList)
callBack?.upCount(itemCount)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
return MyViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_book_source, parent, false)) return MyViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_book_source, parent, false))
} }
@ -116,6 +136,7 @@ class BookSourceAdapter : PagedListAdapter<BookSource, BookSourceAdapter.MyViewH
} }
interface CallBack { interface CallBack {
fun upCount(count: Int)
fun del(bookSource: BookSource) fun del(bookSource: BookSource)
fun edit(bookSource: BookSource) fun edit(bookSource: BookSource)
fun update(bookSource: BookSource) fun update(bookSource: BookSource)

@ -50,6 +50,7 @@ class BookSourceFragment : BaseFragment(R.layout.fragment_book_source), BookSour
R.id.action_import_book_source_qr -> { R.id.action_import_book_source_qr -> {
context?.startActivity<QrCodeActivity>() context?.startActivity<QrCodeActivity>()
} }
R.id.action_select_all -> adapter.selectAll()
} }
} }
@ -98,6 +99,10 @@ class BookSourceFragment : BaseFragment(R.layout.fragment_book_source), BookSour
return false return false
} }
override fun upCount(count: Int) {
search_view.queryHint = getString(R.string.search_book_source_num, count)
}
override fun del(bookSource: BookSource) { override fun del(bookSource: BookSource) {
launch(IO) { App.db.bookSourceDao().delete(bookSource) } launch(IO) { App.db.bookSourceDao().delete(bookSource) }
} }

Loading…
Cancel
Save