This commit is contained in:
Horis
2025-04-09 20:19:52 +08:00
parent 2ab7239b26
commit 0d1ada134b
4 changed files with 22 additions and 22 deletions
@@ -135,8 +135,8 @@ abstract class BaseBooksAdapter<VH : RecyclerView.ViewHolder>(
interface CallBack { interface CallBack {
fun onItemClick(position: Int) fun onItemClick(item: Any)
fun onItemLongClick(position: Int) fun onItemLongClick(item: Any)
fun isUpdate(bookUrl: String): Boolean fun isUpdate(bookUrl: String): Boolean
fun getItems(): List<Any> fun getItems(): List<Any>
} }
@@ -34,12 +34,12 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) :
) { ) {
when (holder) { when (holder) {
is BookViewHolder -> (getItem(position) as? Book)?.let { is BookViewHolder -> (getItem(position) as? Book)?.let {
holder.registerListener(position) holder.registerListener(it)
holder.onBind(it, position, payloads) holder.onBind(it, position, payloads)
} }
is GroupViewHolder -> (getItem(position) as? BookGroup)?.let { is GroupViewHolder -> (getItem(position) as? BookGroup)?.let {
holder.registerListener(position) holder.registerListener(it)
holder.onBind(it, position, payloads) holder.onBind(it, position, payloads)
} }
} }
@@ -78,12 +78,12 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) :
} }
} }
fun registerListener(position: Int) { fun registerListener(item: Any) {
binding.root.setOnClickListener { binding.root.setOnClickListener {
callBack.onItemClick(position) callBack.onItemClick(item)
} }
binding.root.onLongClick { binding.root.onLongClick {
callBack.onItemLongClick(position) callBack.onItemLongClick(item)
} }
} }
@@ -128,12 +128,12 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) :
} }
} }
fun registerListener(position: Int) { fun registerListener(item: Any) {
binding.root.setOnClickListener { binding.root.setOnClickListener {
callBack.onItemClick(position) callBack.onItemClick(item)
} }
binding.root.onLongClick { binding.root.onLongClick {
callBack.onItemLongClick(position) callBack.onItemLongClick(item)
} }
} }
@@ -33,12 +33,12 @@ class BooksAdapterList(context: Context, callBack: CallBack) :
) { ) {
when (holder) { when (holder) {
is BookViewHolder -> (getItem(position) as? Book)?.let { is BookViewHolder -> (getItem(position) as? Book)?.let {
holder.registerListener(position) holder.registerListener(it)
holder.onBind(it, position, payloads) holder.onBind(it, position, payloads)
} }
is GroupViewHolder -> (getItem(position) as? BookGroup)?.let { is GroupViewHolder -> (getItem(position) as? BookGroup)?.let {
holder.registerListener(position) holder.registerListener(it)
holder.onBind(it, position, payloads) holder.onBind(it, position, payloads)
} }
} }
@@ -87,12 +87,12 @@ class BooksAdapterList(context: Context, callBack: CallBack) :
} }
} }
fun registerListener(position: Int) { fun registerListener(item: Any) {
binding.root.setOnClickListener { binding.root.setOnClickListener {
callBack.onItemClick(position) callBack.onItemClick(item)
} }
binding.root.onLongClick { binding.root.onLongClick {
callBack.onItemLongClick(position) callBack.onItemLongClick(item)
} }
} }
@@ -144,12 +144,12 @@ class BooksAdapterList(context: Context, callBack: CallBack) :
} }
} }
fun registerListener(position: Int) { fun registerListener(item: Any) {
binding.root.setOnClickListener { binding.root.setOnClickListener {
callBack.onItemClick(position) callBack.onItemClick(item)
} }
binding.root.onLongClick { binding.root.onLongClick {
callBack.onItemLongClick(position) callBack.onItemLongClick(item)
} }
} }
@@ -211,8 +211,8 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
} }
} }
override fun onItemClick(position: Int) { override fun onItemClick(item: Any) {
when (val item = booksAdapter.getItem(position)) { when (item) {
is Book -> when { is Book -> when {
item.isAudio -> item.isAudio ->
startActivity<AudioPlayActivity> { startActivity<AudioPlayActivity> {
@@ -231,8 +231,8 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
} }
} }
override fun onItemLongClick(position: Int) { override fun onItemLongClick(item: Any) {
when (val item = booksAdapter.getItem(position)) { when (item) {
is Book -> startActivity<BookInfoActivity> { is Book -> startActivity<BookInfoActivity> {
putExtra("name", item.name) putExtra("name", item.name)
putExtra("author", item.author) putExtra("author", item.author)