From 6b1df6b47d38bf2b04ddbc3365208f40b8726b6b Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Tue, 27 Mar 2018 23:53:11 +0200 Subject: [PATCH] Attempt at finally fixing ripple, selection and link interaction --- .../ui/chat/messages/MessageAdapter.kt | 3 --- .../messages/RipplePassthroughTextView.kt | 19 +++++++++++++++++++ .../res/layout/widget_chatmessage_action.xml | 2 +- .../layout/widget_chatmessage_daychange.xml | 2 +- .../res/layout/widget_chatmessage_error.xml | 2 +- .../res/layout/widget_chatmessage_info.xml | 2 +- .../res/layout/widget_chatmessage_notice.xml | 2 +- .../res/layout/widget_chatmessage_plain.xml | 2 +- .../res/layout/widget_chatmessage_server.xml | 2 +- 9 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/RipplePassthroughTextView.kt diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt index b9086710f..4e84989f2 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/MessageAdapter.kt @@ -141,10 +141,7 @@ class MessageAdapter( content.movementMethod = BetterLinkMovementMethod.getInstance() itemView.setOnClickListener(localClickListener) - content.setOnClickListener(localClickListener) - itemView.setOnLongClickListener(localLongClickListener) - content.setOnLongClickListener(localLongClickListener) } fun bind(message: FormattedMessage, selectable: Boolean = true, clickable: Boolean = true) { diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/RipplePassthroughTextView.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/RipplePassthroughTextView.kt new file mode 100644 index 000000000..ad20d238d --- /dev/null +++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/messages/RipplePassthroughTextView.kt @@ -0,0 +1,19 @@ +package de.kuschku.quasseldroid.ui.chat.messages + +import android.content.Context +import android.text.Spannable +import android.util.AttributeSet +import android.view.MotionEvent +import android.widget.TextView + +class RipplePassthroughTextView : TextView { + constructor(context: Context?) : super(context) + constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : + super(context, attrs, defStyleAttr) + + override fun onTouchEvent(event: MotionEvent?): Boolean { + super.onTouchEvent(event) + return movementMethod?.onTouchEvent(this, text as? Spannable, event) == true + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/widget_chatmessage_action.xml b/app/src/main/res/layout/widget_chatmessage_action.xml index 3cb90f5c9..ae14d6500 100644 --- a/app/src/main/res/layout/widget_chatmessage_action.xml +++ b/app/src/main/res/layout/widget_chatmessage_action.xml @@ -28,7 +28,7 @@ android:typeface="monospace" tools:text="@sample/messages.json/data/time" /> - <TextView + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView android:id="@+id/content" android:layout_width="0dip" android:layout_height="wrap_content" diff --git a/app/src/main/res/layout/widget_chatmessage_daychange.xml b/app/src/main/res/layout/widget_chatmessage_daychange.xml index 9b5338654..03f99f78d 100644 --- a/app/src/main/res/layout/widget_chatmessage_daychange.xml +++ b/app/src/main/res/layout/widget_chatmessage_daychange.xml @@ -23,7 +23,7 @@ android:paddingStart="@dimen/message_horizontal" android:paddingTop="@dimen/message_vertical"> - <TextView + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView android:id="@+id/content" android:layout_width="0dip" android:layout_height="wrap_content" diff --git a/app/src/main/res/layout/widget_chatmessage_error.xml b/app/src/main/res/layout/widget_chatmessage_error.xml index d1f1e2ec3..2e84f028b 100644 --- a/app/src/main/res/layout/widget_chatmessage_error.xml +++ b/app/src/main/res/layout/widget_chatmessage_error.xml @@ -28,7 +28,7 @@ android:typeface="monospace" tools:text="@sample/messages.json/data/time" /> - <TextView + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView android:id="@+id/content" android:layout_width="0dip" android:layout_height="wrap_content" diff --git a/app/src/main/res/layout/widget_chatmessage_info.xml b/app/src/main/res/layout/widget_chatmessage_info.xml index 42182a387..37e93194d 100644 --- a/app/src/main/res/layout/widget_chatmessage_info.xml +++ b/app/src/main/res/layout/widget_chatmessage_info.xml @@ -28,7 +28,7 @@ android:textColor="?attr/colorForegroundSecondary" tools:text="@sample/messages.json/data/time" /> - <TextView + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView android:id="@+id/content" android:layout_width="0dip" android:layout_height="wrap_content" diff --git a/app/src/main/res/layout/widget_chatmessage_notice.xml b/app/src/main/res/layout/widget_chatmessage_notice.xml index 87979a516..cc958e534 100644 --- a/app/src/main/res/layout/widget_chatmessage_notice.xml +++ b/app/src/main/res/layout/widget_chatmessage_notice.xml @@ -28,7 +28,7 @@ android:textColor="?attr/colorForegroundNotice" tools:text="@sample/messages.json/data/time" /> - <TextView + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView android:id="@+id/content" android:layout_width="0dip" android:layout_height="wrap_content" diff --git a/app/src/main/res/layout/widget_chatmessage_plain.xml b/app/src/main/res/layout/widget_chatmessage_plain.xml index 451a8535e..2c38ff54c 100644 --- a/app/src/main/res/layout/widget_chatmessage_plain.xml +++ b/app/src/main/res/layout/widget_chatmessage_plain.xml @@ -28,7 +28,7 @@ android:typeface="monospace" tools:text="@sample/messages.json/data/time" /> - <TextView + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView android:id="@+id/content" android:layout_width="0dip" android:layout_height="wrap_content" diff --git a/app/src/main/res/layout/widget_chatmessage_server.xml b/app/src/main/res/layout/widget_chatmessage_server.xml index 7ab995cb8..6f83feb97 100644 --- a/app/src/main/res/layout/widget_chatmessage_server.xml +++ b/app/src/main/res/layout/widget_chatmessage_server.xml @@ -28,7 +28,7 @@ android:typeface="monospace" tools:text="@sample/messages.json/data/time" /> - <TextView + <de.kuschku.quasseldroid.ui.chat.messages.RipplePassthroughTextView android:id="@+id/content" android:layout_width="0dip" android:layout_height="wrap_content" -- GitLab