diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt index a43278198..6e769b121 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt @@ -278,7 +278,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at if (textPos.compare(selectEnd) <= 0) { selectStart.upData(pos = textPos) upSelectedStart( - if (textPos.columnIndex < textLine.columns.lastIndex) textColumn.start else textColumn.end, + if (textPos.columnIndex < textLine.columns.size) textColumn.start else textColumn.end, textLine.lineBottom + relativeOffset, textLine.lineTop + relativeOffset ) @@ -318,7 +318,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at selectEndMoveIndex(selectStart) selectStart.upData(textPos) upSelectedStart( - if (textPos.columnIndex < textLine.columns.lastIndex) textColumn.start else textColumn.end, + if (textPos.columnIndex < textLine.columns.size) textColumn.start else textColumn.end, textLine.lineBottom + relativeOffset, textLine.lineTop + relativeOffset ) @@ -534,7 +534,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at } private fun upSelectChars() { - if (!selectStart.isSelected() || !selectEnd.isSelected()) { + if (!selectStart.isSelected() && !selectEnd.isSelected()) { return } val last = if (callBack.isScroll) 2 else 0 @@ -621,7 +621,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at if (column is TextColumn) { when { compareStart == 0 -> { - if (textPos.columnIndex < textLine.columns.lastIndex) { + if (textPos.columnIndex < textLine.columns.size) { builder.append(column.charData) } if ( diff --git a/modules/book/src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java b/modules/book/src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java index e14dd2a34..0b019dda6 100644 --- a/modules/book/src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java +++ b/modules/book/src/main/java/me/ag2s/epublib/epub/PackageDocumentReader.java @@ -106,7 +106,7 @@ public class PackageDocumentReader extends PackageDocumentBase { NodeList originItemElements = manifestElement .getElementsByTagNameNS(NAMESPACE_OPF, OPFTags.item); for (int i = 0; i < originItemElements.getLength(); i++) { - Element itemElement = (Element) originItemElements.item(i); + Element itemElement = (Element) originItemElements.item(i).cloneNode(false); String href = DOMUtil.getAttribute(itemElement, NAMESPACE_OPF, OPFAttributes.href); String resolvedHref = packagePath.resolve(href).toString(); itemElement.setAttribute("href", resolvedHref);