Horis 1 год назад
Родитель
Сommit
11f7913886

+ 0 - 1
app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BaseBooksAdapter.kt

@@ -95,7 +95,6 @@ abstract class BaseBooksAdapter<VH : RecyclerView.ViewHolder>(
             if (bundle.isEmpty) return null
             return bundle
         }
-
     }
 
     private val asyncListDiffer by lazy {

+ 20 - 12
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<Any>) = 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<Any>) = 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)
+            }
+        }
+
     }
 
 }

+ 20 - 12
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<Any>) = 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<Any>) = 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)
+            }
+        }
+
     }
 
 }