From c98217f963c29ad8db89d0a945fff85dc07a2a8e Mon Sep 17 00:00:00 2001 From: faisalcodes Date: Wed, 18 Jan 2023 22:02:08 +0530 Subject: [PATCH] Fixed #2670 : Timestamp click behaviour in the description. --- .../com/github/libretube/util/LinkHandler.kt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/github/libretube/util/LinkHandler.kt b/app/src/main/java/com/github/libretube/util/LinkHandler.kt index 5d1ff6278..5ad5dda92 100644 --- a/app/src/main/java/com/github/libretube/util/LinkHandler.kt +++ b/app/src/main/java/com/github/libretube/util/LinkHandler.kt @@ -14,7 +14,7 @@ class LinkHandler(private val clickCallback: ((String) -> Unit)?) { opening: Boolean, tag: String?, output: Editable?, - attributes: Attributes? + attributes: Attributes?, ): Boolean { // if the tag is not an anchor link, ignore for the default handler if (output == null || "a" != tag) { @@ -27,19 +27,21 @@ class LinkHandler(private val clickCallback: ((String) -> Unit)?) { link = attributes.getValue("href") } } else { - val refTagEndIndex = output.length - setLinkSpans(output, linkTagStartIndex, refTagEndIndex, link) + if (linkTagStartIndex >= 0 && link != null) { + setLinkSpans(output, linkTagStartIndex, output.length, link!!) + + linkTagStartIndex = -1 + link = null + } } return true } - private fun setLinkSpans(output: Editable, start: Int, end: Int, link: String?) { + private fun setLinkSpans(output: Editable, start: Int, end: Int, link: String) { output.setSpan( object : ClickableSpan() { override fun onClick(widget: View) { - if (clickCallback != null && link != null) { - clickCallback.invoke(link) - } + clickCallback?.invoke(link) } override fun updateDrawState(ds: TextPaint) {