feat: 优化代码

pull/117/head
kunfei 5 years ago
parent 4546a2ad97
commit 1e8bdb489f
  1. 71
      app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt

@ -471,26 +471,57 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at
val selectedText: String val selectedText: String
get() { get() {
val stringBuilder = StringBuilder() val stringBuilder = StringBuilder()
for (lineIndex in selectLineStart..selectLineEnd) { for (relativePos in selectPageStart..selectPageEnd) {
if (lineIndex == selectLineStart && lineIndex == selectLineEnd) { val textPage = relativePage(relativePos)
stringBuilder.append( if (relativePos == selectPageStart && relativePos == selectPageEnd) {
textPage.textLines[lineIndex].text.substring( for (lineIndex in selectLineStart..selectLineEnd) {
selectCharStart, if (lineIndex == selectLineStart && lineIndex == selectLineEnd) {
selectCharEnd + 1 stringBuilder.append(
) textPage.textLines[lineIndex].text.substring(
) selectCharStart,
} else if (lineIndex == selectLineStart) { selectCharEnd + 1
stringBuilder.append( )
textPage.textLines[lineIndex].text.substring( )
selectCharStart } else if (lineIndex == selectLineStart) {
) stringBuilder.append(
) textPage.textLines[lineIndex].text.substring(
} else if (lineIndex == selectLineEnd) { selectCharStart
stringBuilder.append( )
textPage.textLines[lineIndex].text.substring(0, selectCharEnd + 1) )
) } else if (lineIndex == selectLineEnd) {
} else { stringBuilder.append(
stringBuilder.append(textPage.textLines[lineIndex].text) textPage.textLines[lineIndex].text.substring(0, selectCharEnd + 1)
)
} else {
stringBuilder.append(textPage.textLines[lineIndex].text)
}
}
} else if (relativePos == selectPageStart) {
for (lineIndex in selectLineStart until relativePage(relativePos).textLines.size) {
if (lineIndex == selectLineStart) {
stringBuilder.append(
textPage.textLines[lineIndex].text.substring(
selectCharStart
)
)
} else {
stringBuilder.append(textPage.textLines[lineIndex].text)
}
}
} else if (relativePos == selectPageEnd) {
for (lineIndex in 0..selectLineEnd) {
if (lineIndex == selectLineEnd) {
stringBuilder.append(
textPage.textLines[lineIndex].text.substring(0, selectCharEnd + 1)
)
} else {
stringBuilder.append(textPage.textLines[lineIndex].text)
}
}
} else if (relativePos in selectPageStart + 1 until selectPageEnd) {
for (lineIndex in selectLineStart..selectLineEnd) {
stringBuilder.append(textPage.textLines[lineIndex].text)
}
} }
} }
return stringBuilder.toString() return stringBuilder.toString()

Loading…
Cancel
Save