|
|
@@ -458,14 +458,30 @@ object ChapterProvider {
|
|
|
addCharsToLineNatural(book, absStartX, textLine, words, textPaint, startX, srcList)
|
|
|
return
|
|
|
}
|
|
|
- val gapCount: Int = words.lastIndex
|
|
|
- val d = (visibleWidth - desiredWidth) / gapCount
|
|
|
- var x = startX
|
|
|
- words.forEachIndexed { index, char ->
|
|
|
- val cw = StaticLayout.getDesiredWidth(char, textPaint)
|
|
|
- val x1 = if (index != words.lastIndex) (x + cw + d) else (x + cw)
|
|
|
- addCharToLine(book, absStartX, textLine, char, x, x1, index + 1 == words.size, srcList)
|
|
|
- x = x1
|
|
|
+ val spaceSize = words.filter { it == " " }.size
|
|
|
+ if (spaceSize > 0) {
|
|
|
+ val d = (visibleWidth - desiredWidth) / spaceSize
|
|
|
+ var x = startX
|
|
|
+ words.forEachIndexed { index, char ->
|
|
|
+ val cw = StaticLayout.getDesiredWidth(char, textPaint)
|
|
|
+ val x1 = if (char == " ") {
|
|
|
+ if (index != words.lastIndex) (x + cw + d) else (x + cw)
|
|
|
+ } else {
|
|
|
+ (x + cw)
|
|
|
+ }
|
|
|
+ addCharToLine(book, absStartX, textLine, char, x, x1, index + 1 == words.size, srcList)
|
|
|
+ x = x1
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ val gapCount: Int = words.lastIndex
|
|
|
+ val d = (visibleWidth - desiredWidth) / gapCount
|
|
|
+ var x = startX
|
|
|
+ words.forEachIndexed { index, char ->
|
|
|
+ val cw = StaticLayout.getDesiredWidth(char, textPaint)
|
|
|
+ val x1 = if (index != words.lastIndex) (x + cw + d) else (x + cw)
|
|
|
+ addCharToLine(book, absStartX, textLine, char, x, x1, index + 1 == words.size, srcList)
|
|
|
+ x = x1
|
|
|
+ }
|
|
|
}
|
|
|
exceed(absStartX, textLine, words)
|
|
|
}
|