Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • circles/circles-android
1 result
Show changes
Commits on Source (2)
......@@ -19,6 +19,17 @@ abstract class DmTextMessageViewHolder(
abstract val tvMessage: TextView?
protected fun initListeners() {
setListeners()
tvMessage?.apply {
handleLinkClick(this)
setOnLongClickListener {
post?.let { dmOptionsListener.onShowMenuClicked(it.id) }
true
}
}
}
override fun bindHolderSpecific(post: Post) {
bindTextMessage(post)
}
......@@ -48,8 +59,7 @@ class DmMyTextMessageViewHolder(
get() = binding.tvMessage
init {
setListeners()
handleLinkClick(binding.tvMessage)
initListeners()
}
}
......@@ -73,8 +83,7 @@ class DmOtherTextMessageViewHolder(
get() = binding.tvMessage
init {
setListeners()
handleLinkClick(binding.tvMessage)
initListeners()
}
}
\ No newline at end of file
......@@ -43,9 +43,12 @@ abstract class DmViewHolder(
}
}
override fun onSingleTapConfirmed(e: MotionEvent): Boolean {
return true
}
override fun onDoubleTapEvent(e: MotionEvent) = true
override fun onDown(e: MotionEvent) = true
}).apply {
setIsLongpressEnabled(true)
}
......
......@@ -3,11 +3,9 @@ package org.futo.circles.feature.timeline
import android.text.Spannable
import android.text.method.LinkMovementMethod
import android.text.style.URLSpan
import android.util.Patterns
import android.view.MotionEvent
import android.widget.TextView
import org.futo.circles.feature.timeline.list.OnLinkClickedListener
import org.matrix.android.sdk.api.extensions.tryOrNull
class InternalLinkMovementMethod(private val onLinkClickedListener: OnLinkClickedListener) :
LinkMovementMethod() {
......@@ -27,15 +25,12 @@ class InternalLinkMovementMethod(private val onLinkClickedListener: OnLinkClicke
val link = buffer.getSpans(off, off, URLSpan::class.java)
link.getOrNull(0)?.let { span ->
val spanStart = buffer.getSpanStart(span)
val spanEnd = buffer.getSpanEnd(span)
val message = tryOrNull { buffer.subSequence(spanStart, spanEnd).toString() }
val url = span.url
return if (message != url && !url.startsWith("tel")) {
return if (url.contains("circles.futo.org")) {
super.onTouchEvent(widget, buffer, event)
} else {
onLinkClickedListener.onLinkClicked(url)
true
} else {
super.onTouchEvent(widget, buffer, event)
}
}
......
......@@ -21,8 +21,8 @@ abstract class TimelineListItemViewHolder(view: View) : RecyclerView.ViewHolder(
@SuppressLint("ClickableViewAccessibility")
protected fun handleLinkClick(textView: TextView?) {
textView?.apply {
protected fun handleLinkClick(textView: TextView) {
textView.apply {
movementMethod = InternalLinkMovementMethod(object : OnLinkClickedListener {
override fun onLinkClicked(url: String) {
showLinkConfirmation(context, url)
......
......@@ -77,8 +77,8 @@ abstract class PostViewHolder(
}
postFooter?.setListener(optionsListener)
postHeader.setListener(optionsListener)
readMoreTextView?.let { handleLinkClick(it) }
readMoreTextView?.apply {
handleLinkClick(this)
setNotCollapsableClickAction { openReplies() }
setOnLongClickListener {
postHeader.showMenu()
......
......@@ -14,6 +14,9 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/chip_selected_color"
android:clickable="true"
android:focusable="true"
android:foreground="?selectableItemBackground"
app:layout_constraintBottom_toBottomOf="@id/dmFooter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/messageBarrier"
......@@ -25,7 +28,6 @@
style="@style/body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:paddingHorizontal="12dp"
android:paddingVertical="8dp"
app:layout_constraintEnd_toEndOf="parent"
......
......@@ -14,6 +14,9 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/post_card_background_color"
android:clickable="true"
android:focusable="true"
android:foreground="?selectableItemBackground"
app:layout_constraintBottom_toBottomOf="@id/dmFooter"
app:layout_constraintEnd_toEndOf="@id/messageBarrier"
app:layout_constraintStart_toStartOf="parent"
......@@ -25,7 +28,6 @@
style="@style/body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:padding="12dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
......
......@@ -5,7 +5,6 @@
android:id="@+id/lCreatePost"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
......