Fix crash when using TextFuture with MetricAffectingSpan added by EmojiCompat (#4691)

This commit is contained in:
Benoit Marty 2021-12-13 12:13:39 +01:00 committed by Benoit Marty
parent 406881c8a7
commit b701bb7c1a

View file

@ -18,8 +18,10 @@ package im.vector.app.features.html
import android.os.Build import android.os.Build
import android.text.Spanned import android.text.Spanned
import android.text.style.MetricAffectingSpan
import android.text.style.StrikethroughSpan import android.text.style.StrikethroughSpan
import android.text.style.UnderlineSpan import android.text.style.UnderlineSpan
import androidx.emoji.text.EmojiCompat
import javax.inject.Inject import javax.inject.Inject
class SpanUtils @Inject constructor() { class SpanUtils @Inject constructor() {
@ -30,12 +32,13 @@ class SpanUtils @Inject constructor() {
return true return true
} }
if (charSequence !is Spanned) { val emojiCharSequence = EmojiCompat.get().process(charSequence)
if (emojiCharSequence !is Spanned) {
return true return true
} }
return charSequence return emojiCharSequence
.getSpans(0, charSequence.length, Any::class.java) .getSpans(0, emojiCharSequence.length, Any::class.java)
.all { it !is StrikethroughSpan && it !is UnderlineSpan } .all { it !is StrikethroughSpan && it !is UnderlineSpan && it !is MetricAffectingSpan }
} }
} }