Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,9 @@ class ParagraphDrawable(
val currentLine = mutableListOf<Drawable>()
var maxLineHeight = Float.MIN_VALUE

var prevY = y

fun gotoNextLine() {
prevY = currY

currX = x
currY += maxLineHeight * scaleModifier + config.paragraphConfig.spaceBetweenLines
currY += maxLineHeight + config.paragraphConfig.spaceBetweenLines

if (maxLineHeight > 9f) {
for (drawable in currentLine)
Expand All @@ -112,9 +108,9 @@ class ParagraphDrawable(
drawable.layout(currX, currY, newWidth).also {
if (it.height > maxLineHeight)
maxLineHeight = it.height
widthRemaining -= it.width
currX += it.width
}
widthRemaining -= newWidth
currX += newWidth
trimNextText = false
currentLine.add(drawable)
newDrawables.add(drawable)
Expand Down Expand Up @@ -156,7 +152,7 @@ class ParagraphDrawable(
}

if (text is ImageDrawable) {
gotoNextLine()
if (currentLine.isNotEmpty()) gotoNextLine()
layout(text, width)
gotoNextLine()
continue
Expand Down Expand Up @@ -238,8 +234,13 @@ class ParagraphDrawable(

// We can have extra drawables in the current line that didn't get handled
// by the last iteration of the loop
if (currentLine.isNotEmpty())
if (currentLine.isNotEmpty()) {
lines.add(currentLine.toList())
currY += maxLineHeight
} else {
// There isn't a next line, so this space shouldn't be there
currY -= config.paragraphConfig.spaceBetweenLines
}

if (centered) {
// Offset each text component by half of the space at the end of each line
Expand All @@ -265,8 +266,7 @@ class ParagraphDrawable(

drawables.setDrawables(newDrawables)

val height = (if (currentLine.isNotEmpty()) currY else prevY) - y + 9f * scaleModifier +
if (insertSpaceAfter) config.paragraphConfig.spaceAfter else 0f
val height = currY - y + if (insertSpaceAfter) config.paragraphConfig.spaceAfter else 0f

return Layout(
x,
Expand Down Expand Up @@ -387,7 +387,8 @@ class ParagraphDrawable(

// Step 5: Get the string offset position in the current text

fun textWidth(offset: Int) = currentDrawable.formattedText.substring(0, offset).width(currentDrawable.scaleModifier)
fun textWidth(offset: Int) =
currentDrawable.formattedText.substring(0, offset).width(currentDrawable.scaleModifier)

var offset = currentDrawable.style.numFormattingChars
var cachedWidth = 0f
Expand Down