diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BaseBooksAdapter.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BaseBooksAdapter.kt index 179ce0a67..f70375856 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BaseBooksAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BaseBooksAdapter.kt @@ -95,7 +95,6 @@ abstract class BaseBooksAdapter( if (bundle.isEmpty) return null return bundle } - } private val asyncListDiffer by lazy { diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterGrid.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterGrid.kt index 98d4a2d27..903e03a66 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterGrid.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterGrid.kt @@ -34,10 +34,12 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) : ) { when (holder) { is BookViewHolder -> (getItem(position) as? Book)?.let { + holder.registerListener(position) holder.onBind(it, position, payloads) } is GroupViewHolder -> (getItem(position) as? BookGroup)?.let { + holder.registerListener(position) holder.onBind(it, position, payloads) } } @@ -50,12 +52,6 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) : tvName.text = item.name ivCover.load(item.getDisplayCover(), item.name, item.author, false, item.origin) upRefresh(this, item) - root.setOnClickListener { - callBack.onItemClick(position) - } - root.onLongClick { - callBack.onItemLongClick(position) - } } fun onBind(item: Book, position: Int, payloads: MutableList) = binding.run { @@ -82,6 +78,15 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) : } } + fun registerListener(position: Int) { + binding.root.setOnClickListener { + callBack.onItemClick(position) + } + binding.root.onLongClick { + callBack.onItemLongClick(position) + } + } + private fun upRefresh(binding: ItemBookshelfGridBinding, item: Book) { if (!item.isLocal && callBack.isUpdate(item.bookUrl)) { binding.bvUnread.invisible() @@ -105,12 +110,6 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) : fun onBind(item: BookGroup, position: Int) = binding.run { tvName.text = item.groupName ivCover.load(item.cover) - root.setOnClickListener { - callBack.onItemClick(position) - } - root.onLongClick { - callBack.onItemLongClick(position) - } } fun onBind(item: BookGroup, position: Int, payloads: MutableList) = binding.run { @@ -129,6 +128,15 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) : } } + fun registerListener(position: Int) { + binding.root.setOnClickListener { + callBack.onItemClick(position) + } + binding.root.onLongClick { + callBack.onItemLongClick(position) + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt index 32c79ff1e..f569bdb55 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BooksAdapterList.kt @@ -33,10 +33,12 @@ class BooksAdapterList(context: Context, callBack: CallBack) : ) { when (holder) { is BookViewHolder -> (getItem(position) as? Book)?.let { + holder.registerListener(position) holder.onBind(it, position, payloads) } is GroupViewHolder -> (getItem(position) as? BookGroup)?.let { + holder.registerListener(position) holder.onBind(it, position, payloads) } } @@ -56,12 +58,6 @@ class BooksAdapterList(context: Context, callBack: CallBack) : ivLast.visible() ivRead.visible() upRefresh(this, item) - root.setOnClickListener { - callBack.onItemClick(position) - } - root.onLongClick { - callBack.onItemLongClick(position) - } } fun onBind(item: Book, position: Int, payloads: MutableList) = binding.run { @@ -91,6 +87,15 @@ class BooksAdapterList(context: Context, callBack: CallBack) : } } + fun registerListener(position: Int) { + binding.root.setOnClickListener { + callBack.onItemClick(position) + } + binding.root.onLongClick { + callBack.onItemLongClick(position) + } + } + private fun upRefresh(binding: ItemBookshelfListBinding, item: Book) { if (!item.isLocal && callBack.isUpdate(item.bookUrl)) { binding.bvUnread.invisible() @@ -121,12 +126,6 @@ class BooksAdapterList(context: Context, callBack: CallBack) : tvAuthor.gone() tvLast.gone() tvRead.gone() - root.setOnClickListener { - callBack.onItemClick(position) - } - root.onLongClick { - callBack.onItemLongClick(position) - } } fun onBind(item: BookGroup, position: Int, payloads: MutableList) = binding.run { @@ -145,6 +144,15 @@ class BooksAdapterList(context: Context, callBack: CallBack) : } } + fun registerListener(position: Int) { + binding.root.setOnClickListener { + callBack.onItemClick(position) + } + binding.root.onLongClick { + callBack.onItemLongClick(position) + } + } + } } \ No newline at end of file