From 8395fa05a95ab4b699a6a0f6e032d22cabe15cd7 Mon Sep 17 00:00:00 2001
From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Date: Mon, 27 Jan 2020 14:20:29 -0500
Subject: [PATCH] conversations: fix broken clickable features in text messages

broken since commit a2f05e8

Changes the OnClickListener from the text message TextView to the
item's outer layout, restoring double click selection and clickable
links.

Change-Id: Iec7ee9d1ecb2278dcaf88fb7a184b345cb710eca
---
 .../main/java/cx/ring/adapters/ConversationAdapter.java    | 7 ++++---
 .../main/java/cx/ring/views/ConversationViewHolder.java    | 2 ++
 ring-android/app/src/main/res/layout/item_conv_msg_me.xml  | 2 +-
 .../app/src/main/res/layout/item_conv_msg_peer.xml         | 4 ++--
 4 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java
index 97e73bc07..a571dc940 100644
--- a/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java
+++ b/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java
@@ -81,7 +81,6 @@ import cx.ring.model.TextMessage;
 import cx.ring.service.DRingService;
 import cx.ring.utils.AndroidFileUtils;
 import cx.ring.utils.ContentUriHandler;
-import cx.ring.utils.FileUtils;
 import cx.ring.utils.GlideApp;
 import cx.ring.utils.GlideOptions;
 import cx.ring.utils.ResourceMapper;
@@ -296,9 +295,11 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationViewHo
             holder.player = null;
         }
         if (holder.mMsgTxt != null) {
-            holder.mMsgTxt.setOnClickListener(null);
             holder.mMsgTxt.setOnLongClickListener(null);
         }
+        if (holder.mItem != null) {
+            holder.mItem.setOnClickListener(null);
+        }
         if (expandedItemPosition == holder.getLayoutPosition()) {
             holder.mMsgDetailTxt.setVisibility(View.GONE);
             expandedItemPosition = -1;
@@ -764,7 +765,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationViewHo
                 }));
             }
             setItemViewExpansionState(convViewHolder, isExpanded);
-            convViewHolder.mMsgTxt.setOnClickListener((View v) -> {
+            convViewHolder.mItem.setOnClickListener((View v) -> {
                 if (convViewHolder.animator != null && convViewHolder.animator.isRunning()) {
                     return;
                 }
diff --git a/ring-android/app/src/main/java/cx/ring/views/ConversationViewHolder.java b/ring-android/app/src/main/java/cx/ring/views/ConversationViewHolder.java
index 79ab35c37..1672d9860 100644
--- a/ring-android/app/src/main/java/cx/ring/views/ConversationViewHolder.java
+++ b/ring-android/app/src/main/java/cx/ring/views/ConversationViewHolder.java
@@ -40,6 +40,7 @@ import io.reactivex.disposables.CompositeDisposable;
 import io.reactivex.disposables.Disposable;
 
 public class ConversationViewHolder extends RecyclerView.ViewHolder {
+    public View mItem;
     public TextView mMsgTxt;
     public TextView mMsgDetailTxt;
     public TextView mMsgDetailTxtPerm;
@@ -79,6 +80,7 @@ public class ConversationViewHolder extends RecyclerView.ViewHolder {
                 // common layout elements
                 case INCOMING_TEXT_MESSAGE:
                 case OUTGOING_TEXT_MESSAGE:
+                    mItem = v.findViewById(R.id.txt_entry);
                     mMsgTxt = v.findViewById(R.id.msg_txt);
                     mMsgDetailTxt = v.findViewById(R.id.msg_details_txt);
                     mMsgDetailTxtPerm = v.findViewById(R.id.msg_details_txt_perm);
diff --git a/ring-android/app/src/main/res/layout/item_conv_msg_me.xml b/ring-android/app/src/main/res/layout/item_conv_msg_me.xml
index f7aa80612..35830d8d6 100644
--- a/ring-android/app/src/main/res/layout/item_conv_msg_me.xml
+++ b/ring-android/app/src/main/res/layout/item_conv_msg_me.xml
@@ -72,7 +72,7 @@ along with this program; if not, write to the Free Software
             android:autoLink="all"
             android:background="@drawable/textmsg_bg_out"
             android:ellipsize="marquee"
-            android:focusable="false"
+            android:focusable="true"
             android:marqueeRepeatLimit="marquee_forever"
             android:padding="@dimen/padding_medium"
             android:scrollHorizontally="true"
diff --git a/ring-android/app/src/main/res/layout/item_conv_msg_peer.xml b/ring-android/app/src/main/res/layout/item_conv_msg_peer.xml
index 81584e8ae..43c011176 100644
--- a/ring-android/app/src/main/res/layout/item_conv_msg_peer.xml
+++ b/ring-android/app/src/main/res/layout/item_conv_msg_peer.xml
@@ -55,7 +55,7 @@ along with this program; if not, write to the Free Software
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:paddingStart="@dimen/padding_medium"
-        android:paddingEnd="@dimen/padding_large">
+        android:paddingEnd="36dp">
 
         <ImageView
             android:id="@+id/photo"
@@ -77,7 +77,7 @@ along with this program; if not, write to the Free Software
             android:autoLink="all"
             android:background="@drawable/textmsg_bg_in"
             android:ellipsize="marquee"
-            android:focusable="false"
+            android:focusable="true"
             android:marqueeRepeatLimit="marquee_forever"
             android:scrollHorizontally="true"
             android:singleLine="false"
-- 
GitLab