Merge pull request #7601 from vector-im/feature/ons/fix_truncated_italic_text
Fix italic text is truncated when bubble mode and markdown is enabled (PSG-1006)
This commit is contained in:
commit
664b0665cf
|
@ -0,0 +1 @@
|
||||||
|
Fix italic text is truncated when bubble mode and markdown is enabled
|
|
@ -29,6 +29,7 @@ import io.mockk.verify
|
||||||
import io.noties.markwon.core.spans.EmphasisSpan
|
import io.noties.markwon.core.spans.EmphasisSpan
|
||||||
import io.noties.markwon.core.spans.OrderedListItemSpan
|
import io.noties.markwon.core.spans.OrderedListItemSpan
|
||||||
import io.noties.markwon.core.spans.StrongEmphasisSpan
|
import io.noties.markwon.core.spans.StrongEmphasisSpan
|
||||||
|
import me.gujun.android.span.style.CustomTypefaceSpan
|
||||||
|
|
||||||
fun Spannable.toTestSpan(): String {
|
fun Spannable.toTestSpan(): String {
|
||||||
var output = toString()
|
var output = toString()
|
||||||
|
@ -54,7 +55,7 @@ private fun Any.readTags(): SpanTags {
|
||||||
OrderedListItemSpan::class -> SpanTags("[list item]", "[/list item]")
|
OrderedListItemSpan::class -> SpanTags("[list item]", "[/list item]")
|
||||||
HtmlCodeSpan::class -> SpanTags("[code]", "[/code]")
|
HtmlCodeSpan::class -> SpanTags("[code]", "[/code]")
|
||||||
StrongEmphasisSpan::class -> SpanTags("[bold]", "[/bold]")
|
StrongEmphasisSpan::class -> SpanTags("[bold]", "[/bold]")
|
||||||
EmphasisSpan::class -> SpanTags("[italic]", "[/italic]")
|
EmphasisSpan::class, CustomTypefaceSpan::class -> SpanTags("[italic]", "[/italic]")
|
||||||
else -> throw IllegalArgumentException("Unknown ${this::class}")
|
else -> throw IllegalArgumentException("Unknown ${this::class}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ package im.vector.app.features.html
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
|
import android.graphics.Typeface
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.text.Spannable
|
import android.text.Spannable
|
||||||
import androidx.core.text.toSpannable
|
import androidx.core.text.toSpannable
|
||||||
|
@ -40,6 +41,7 @@ import im.vector.app.features.settings.VectorPreferences
|
||||||
import io.noties.markwon.AbstractMarkwonPlugin
|
import io.noties.markwon.AbstractMarkwonPlugin
|
||||||
import io.noties.markwon.Markwon
|
import io.noties.markwon.Markwon
|
||||||
import io.noties.markwon.MarkwonPlugin
|
import io.noties.markwon.MarkwonPlugin
|
||||||
|
import io.noties.markwon.MarkwonSpansFactory
|
||||||
import io.noties.markwon.PrecomputedFutureTextSetterCompat
|
import io.noties.markwon.PrecomputedFutureTextSetterCompat
|
||||||
import io.noties.markwon.ext.latex.JLatexMathPlugin
|
import io.noties.markwon.ext.latex.JLatexMathPlugin
|
||||||
import io.noties.markwon.ext.latex.JLatexMathTheme
|
import io.noties.markwon.ext.latex.JLatexMathTheme
|
||||||
|
@ -50,6 +52,8 @@ import io.noties.markwon.inlineparser.EntityInlineProcessor
|
||||||
import io.noties.markwon.inlineparser.HtmlInlineProcessor
|
import io.noties.markwon.inlineparser.HtmlInlineProcessor
|
||||||
import io.noties.markwon.inlineparser.MarkwonInlineParser
|
import io.noties.markwon.inlineparser.MarkwonInlineParser
|
||||||
import io.noties.markwon.inlineparser.MarkwonInlineParserPlugin
|
import io.noties.markwon.inlineparser.MarkwonInlineParserPlugin
|
||||||
|
import me.gujun.android.span.style.CustomTypefaceSpan
|
||||||
|
import org.commonmark.node.Emphasis
|
||||||
import org.commonmark.node.Node
|
import org.commonmark.node.Node
|
||||||
import org.commonmark.parser.Parser
|
import org.commonmark.parser.Parser
|
||||||
import org.matrix.android.sdk.api.MatrixUrls.isMxcUrl
|
import org.matrix.android.sdk.api.MatrixUrls.isMxcUrl
|
||||||
|
@ -123,6 +127,12 @@ class EventHtmlRenderer @Inject constructor(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.usePlugin(object : AbstractMarkwonPlugin() {
|
.usePlugin(object : AbstractMarkwonPlugin() {
|
||||||
|
override fun configureSpansFactory(builder: MarkwonSpansFactory.Builder) {
|
||||||
|
builder.setFactory(
|
||||||
|
Emphasis::class.java
|
||||||
|
) { _, _ -> CustomTypefaceSpan(Typeface.create(Typeface.DEFAULT, Typeface.ITALIC)) }
|
||||||
|
}
|
||||||
|
|
||||||
override fun configureParser(builder: Parser.Builder) {
|
override fun configureParser(builder: Parser.Builder) {
|
||||||
/* Configuring the Markwon block formatting processor.
|
/* Configuring the Markwon block formatting processor.
|
||||||
* Default settings are all Markdown blocks. Turn those off.
|
* Default settings are all Markdown blocks. Turn those off.
|
||||||
|
|
Loading…
Reference in New Issue