mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-06-08 00:39:54 +00:00
Use new LinkMovementMethod()
This commit is contained in:
parent
ca125d1f79
commit
e1e1916126
@ -15,6 +15,7 @@ import android.net.Uri
|
|||||||
import android.os.Parcel
|
import android.os.Parcel
|
||||||
import android.text.SpannableStringBuilder
|
import android.text.SpannableStringBuilder
|
||||||
import android.text.format.DateFormat
|
import android.text.format.DateFormat
|
||||||
|
import android.text.method.LinkMovementMethod
|
||||||
import android.text.style.*
|
import android.text.style.*
|
||||||
import android.text.util.Linkify
|
import android.text.util.Linkify
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
@ -60,7 +61,6 @@ import com.looker.droidify.utility.extension.text.formatSize
|
|||||||
import com.looker.droidify.utility.extension.text.nullIfEmpty
|
import com.looker.droidify.utility.extension.text.nullIfEmpty
|
||||||
import com.looker.droidify.utility.extension.text.trimAfter
|
import com.looker.droidify.utility.extension.text.trimAfter
|
||||||
import com.looker.droidify.utility.extension.text.trimBefore
|
import com.looker.droidify.utility.extension.text.trimBefore
|
||||||
import com.looker.droidify.widget.ClickableMovementMethod
|
|
||||||
import com.looker.droidify.widget.StableRecyclerAdapter
|
import com.looker.droidify.widget.StableRecyclerAdapter
|
||||||
import org.intellij.markdown.flavours.commonmark.CommonMarkFlavourDescriptor
|
import org.intellij.markdown.flavours.commonmark.CommonMarkFlavourDescriptor
|
||||||
import org.intellij.markdown.html.HtmlGenerator
|
import org.intellij.markdown.html.HtmlGenerator
|
||||||
@ -419,7 +419,7 @@ class AppDetailAdapter(private val callbacks: Callbacks) :
|
|||||||
itemView as MaterialTextView
|
itemView as MaterialTextView
|
||||||
itemView.setTextSizeScaled(15)
|
itemView.setTextSizeScaled(15)
|
||||||
itemView.resources.sizeScaled(16).let { itemView.setPadding(it, it, it, it) }
|
itemView.resources.sizeScaled(16).let { itemView.setPadding(it, it, it, it) }
|
||||||
itemView.movementMethod = ClickableMovementMethod
|
itemView.movementMethod = LinkMovementMethod()
|
||||||
itemView.layoutParams = RecyclerView.LayoutParams(
|
itemView.layoutParams = RecyclerView.LayoutParams(
|
||||||
RecyclerView.LayoutParams.MATCH_PARENT,
|
RecyclerView.LayoutParams.MATCH_PARENT,
|
||||||
RecyclerView.LayoutParams.WRAP_CONTENT
|
RecyclerView.LayoutParams.WRAP_CONTENT
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
package com.looker.droidify.widget
|
|
||||||
|
|
||||||
import android.text.Selection
|
|
||||||
import android.text.Spannable
|
|
||||||
import android.text.method.MovementMethod
|
|
||||||
import android.text.style.ClickableSpan
|
|
||||||
import android.view.KeyEvent
|
|
||||||
import android.view.MotionEvent
|
|
||||||
import android.widget.TextView
|
|
||||||
|
|
||||||
object ClickableMovementMethod : MovementMethod {
|
|
||||||
override fun initialize(widget: TextView, text: Spannable) {
|
|
||||||
Selection.removeSelection(text)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onTouchEvent(widget: TextView, text: Spannable, event: MotionEvent): Boolean {
|
|
||||||
val action = event.action
|
|
||||||
val down = action == MotionEvent.ACTION_DOWN
|
|
||||||
val up = action == MotionEvent.ACTION_UP
|
|
||||||
return (down || up) && run {
|
|
||||||
val x = event.x.toInt() - widget.totalPaddingLeft + widget.scrollX
|
|
||||||
val y = event.y.toInt() - widget.totalPaddingTop + widget.scrollY
|
|
||||||
val layout = widget.layout
|
|
||||||
val line = layout.getLineForVertical(y)
|
|
||||||
val offset = layout.getOffsetForHorizontal(line, x.toFloat())
|
|
||||||
val span = text.getSpans(offset, offset, ClickableSpan::class.java)?.firstOrNull()
|
|
||||||
if (span != null) {
|
|
||||||
if (down) {
|
|
||||||
Selection.setSelection(text, text.getSpanStart(span), text.getSpanEnd(span))
|
|
||||||
} else {
|
|
||||||
span.onClick(widget)
|
|
||||||
}
|
|
||||||
true
|
|
||||||
} else {
|
|
||||||
Selection.removeSelection(text)
|
|
||||||
false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onKeyDown(
|
|
||||||
widget: TextView,
|
|
||||||
text: Spannable,
|
|
||||||
keyCode: Int,
|
|
||||||
event: KeyEvent,
|
|
||||||
): Boolean = false
|
|
||||||
|
|
||||||
override fun onKeyUp(
|
|
||||||
widget: TextView,
|
|
||||||
text: Spannable,
|
|
||||||
keyCode: Int,
|
|
||||||
event: KeyEvent,
|
|
||||||
): Boolean = false
|
|
||||||
|
|
||||||
override fun onKeyOther(view: TextView, text: Spannable, event: KeyEvent): Boolean = false
|
|
||||||
override fun onTakeFocus(widget: TextView, text: Spannable, direction: Int) = Unit
|
|
||||||
override fun onTrackballEvent(widget: TextView, text: Spannable, event: MotionEvent): Boolean =
|
|
||||||
false
|
|
||||||
|
|
||||||
override fun onGenericMotionEvent(
|
|
||||||
widget: TextView,
|
|
||||||
text: Spannable,
|
|
||||||
event: MotionEvent,
|
|
||||||
): Boolean = false
|
|
||||||
|
|
||||||
override fun canSelectArbitrarily(): Boolean = false
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user