From 8c81e4773787bc2126df5c7a6d7c712fca694d4f Mon Sep 17 00:00:00 2001 From: mtang-signal Date: Tue, 30 Apr 2024 16:29:33 -0400 Subject: [PATCH] Expand double tap touch area. --- .../conversation/v2/ConversationAdapterV2.kt | 28 ++++++++++--------- .../V2ConversationItemTextOnlyViewHolder.kt | 2 +- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt index a2e2e62c4d..94cec13b4d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapterV2.kt @@ -385,19 +385,6 @@ class ConversationAdapterV2( } private inner class OutgoingMediaViewHolder(itemView: View) : ConversationViewHolder(itemView) { - val gestureDetector = GestureDetector( - context, - object : SimpleOnGestureListener() { - override fun onDoubleTap(e: MotionEvent): Boolean { - if (clickListener != null) { - clickListener.onItemDoubleClick(getMultiselectPartForLatestTouch()) - return true - } - return false - } - } - ) - override fun bind(model: OutgoingMedia) { bindable.setEventListener(clickListener) bindable.setGestureDetector(gestureDetector) @@ -486,6 +473,19 @@ class ConversationAdapterV2( val bindable: BindableConversationItem get() = itemView as BindableConversationItem + val gestureDetector: GestureDetector = GestureDetector( + context, + object : SimpleOnGestureListener() { + override fun onDoubleTap(e: MotionEvent): Boolean { + if (clickListener != null && selectedItems.isEmpty()) { + clickListener.onItemDoubleClick(getMultiselectPartForLatestTouch()) + return true + } + return false + } + } + ) + override val root: ViewGroup = bindable.root protected val previousMessage: Optional @@ -512,6 +512,8 @@ class ConversationAdapterV2( ) true } + + itemView.setOnTouchListener { _, event: MotionEvent -> gestureDetector.onTouchEvent(event) } } fun bindPayloadsIfAvailable(): Boolean { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt index 998ab89aa0..654f828637 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt @@ -154,7 +154,7 @@ open class V2ConversationItemTextOnlyViewHolder>( ) } - binding.body.setOnTouchListener { _, event -> gestureDetector.onTouchEvent(event) } + binding.root.setOnTouchListener { _, event -> gestureDetector.onTouchEvent(event) } binding.root.setOnClickListener { onBubbleClicked() } binding.root.setOnLongClickListener { conversationContext.clickListener.onItemLongClick(binding.root, getMultiselectPartForLatestTouch())