diff --git a/changelog.d/8218.bugfix b/changelog.d/8218.bugfix new file mode 100644 index 0000000000..556ec22daf --- /dev/null +++ b/changelog.d/8218.bugfix @@ -0,0 +1 @@ +Long name are truncated in the pills diff --git a/vector/src/main/java/im/vector/app/features/html/PillImageSpan.kt b/vector/src/main/java/im/vector/app/features/html/PillImageSpan.kt index af1bcb866f..a1130bd251 100644 --- a/vector/src/main/java/im/vector/app/features/html/PillImageSpan.kt +++ b/vector/src/main/java/im/vector/app/features/html/PillImageSpan.kt @@ -22,7 +22,9 @@ import android.content.Context import android.content.res.ColorStateList import android.graphics.Canvas import android.graphics.Paint +import android.graphics.Rect import android.graphics.drawable.Drawable +import android.text.TextUtils import android.text.style.ReplacementSpan import android.widget.TextView import androidx.annotation.UiThread @@ -101,6 +103,15 @@ class PillImageSpan( val transY: Int = y + (fm.descent + fm.ascent - pillDrawable.bounds.bottom) / 2 canvas.save() canvas.translate(x, transY.toFloat()) + + val rect = Rect() + canvas.getClipBounds(rect) + val maxWidth = rect.right + if (pillDrawable.intrinsicWidth > maxWidth) { + pillDrawable.setBounds(0, 0, maxWidth, pillDrawable.intrinsicHeight) + pillDrawable.ellipsize = TextUtils.TruncateAt.END + } + pillDrawable.draw(canvas) canvas.restore() }