mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-04-30 22:34:24 +02:00
fix: correct indent for childes with text content
This commit is contained in:
parent
0c8762bc64
commit
2c9c0d1ba6
@ -24,9 +24,8 @@ import java.util.*;
|
|||||||
public class XMLElement extends XMLNode{
|
public class XMLElement extends XMLNode{
|
||||||
static final long DEBUG_TO_STRING=500;
|
static final long DEBUG_TO_STRING=500;
|
||||||
private String mTagName;
|
private String mTagName;
|
||||||
private XMLTextAttribute mTextAttribute;
|
|
||||||
private final List<XMLAttribute> mAttributes = new ArrayList<>();
|
private final List<XMLAttribute> mAttributes = new ArrayList<>();
|
||||||
private final List<XMLElement> mChildes = new ArrayList<>();
|
private final List<XMLElement> mChildElements = new ArrayList<>();
|
||||||
private List<XMLComment> mComments;
|
private List<XMLComment> mComments;
|
||||||
private final List<XMLText> mTexts = new ArrayList<>();
|
private final List<XMLText> mTexts = new ArrayList<>();
|
||||||
private XMLElement mParent;
|
private XMLElement mParent;
|
||||||
@ -191,7 +190,7 @@ public class XMLElement extends XMLNode{
|
|||||||
addChildNoCheck(child, true);
|
addChildNoCheck(child, true);
|
||||||
}
|
}
|
||||||
private void clearChildElements(){
|
private void clearChildElements(){
|
||||||
mChildes.clear();
|
mChildElements.clear();
|
||||||
}
|
}
|
||||||
private void clearTexts(){
|
private void clearTexts(){
|
||||||
mTexts.clear();
|
mTexts.clear();
|
||||||
@ -208,7 +207,7 @@ public class XMLElement extends XMLNode{
|
|||||||
public void hideComments(boolean recursive, boolean hide){
|
public void hideComments(boolean recursive, boolean hide){
|
||||||
hideComments(hide);
|
hideComments(hide);
|
||||||
if(recursive){
|
if(recursive){
|
||||||
for(XMLElement child:mChildes){
|
for(XMLElement child: mChildElements){
|
||||||
child.hideComments(recursive, hide);
|
child.hideComments(recursive, hide);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -260,22 +259,22 @@ public class XMLElement extends XMLNode{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void removeChildElements(){
|
public void removeChildElements(){
|
||||||
mChildes.clear();
|
mChildElements.clear();
|
||||||
}
|
}
|
||||||
public List<XMLAttribute> listAttributes(){
|
public List<XMLAttribute> listAttributes(){
|
||||||
return mAttributes;
|
return mAttributes;
|
||||||
}
|
}
|
||||||
public int getChildesCount(){
|
public int getChildesCount(){
|
||||||
return mChildes.size();
|
return mChildElements.size();
|
||||||
}
|
}
|
||||||
public List<XMLElement> listChildElements(){
|
public List<XMLElement> listChildElements(){
|
||||||
return mChildes;
|
return mChildElements;
|
||||||
}
|
}
|
||||||
public XMLElement getChildAt(int index){
|
public XMLElement getChildAt(int index){
|
||||||
if(index<0 || index>=mChildes.size()){
|
if(index<0 || index>= mChildElements.size()){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return mChildes.get(index);
|
return mChildElements.get(index);
|
||||||
}
|
}
|
||||||
public int getAttributeCount(){
|
public int getAttributeCount(){
|
||||||
return mAttributes.size();
|
return mAttributes.size();
|
||||||
@ -409,7 +408,7 @@ public class XMLElement extends XMLNode{
|
|||||||
if(comparator==null){
|
if(comparator==null){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mChildes.sort(comparator);
|
mChildElements.sort(comparator);
|
||||||
}
|
}
|
||||||
public void sortAttributes(Comparator<XMLAttribute> comparator){
|
public void sortAttributes(Comparator<XMLAttribute> comparator){
|
||||||
if(comparator==null){
|
if(comparator==null){
|
||||||
@ -439,7 +438,7 @@ public class XMLElement extends XMLNode{
|
|||||||
}
|
}
|
||||||
child.setParent(this);
|
child.setParent(this);
|
||||||
child.setIndent(getChildIndent());
|
child.setIndent(getChildIndent());
|
||||||
mChildes.add(child);
|
mChildElements.add(child);
|
||||||
if(addSupper){
|
if(addSupper){
|
||||||
super.addChildNodeInternal(child);
|
super.addChildNodeInternal(child);
|
||||||
}
|
}
|
||||||
@ -454,7 +453,8 @@ public class XMLElement extends XMLNode{
|
|||||||
return rs;
|
return rs;
|
||||||
}
|
}
|
||||||
int getIndent(){
|
int getIndent(){
|
||||||
if(hasTextContent()){
|
XMLElement parent = getParent();
|
||||||
|
if(parent!=null && parent.hasTextContent()){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return mIndent;
|
return mIndent;
|
||||||
@ -477,7 +477,7 @@ public class XMLElement extends XMLNode{
|
|||||||
public void setIndent(int indent){
|
public void setIndent(int indent){
|
||||||
mIndent=indent;
|
mIndent=indent;
|
||||||
int chIndent=getChildIndent();
|
int chIndent=getChildIndent();
|
||||||
for(XMLElement child:mChildes){
|
for(XMLElement child: mChildElements){
|
||||||
child.setIndent(chIndent);
|
child.setIndent(chIndent);
|
||||||
}
|
}
|
||||||
if(mComments!=null){
|
if(mComments!=null){
|
||||||
@ -525,25 +525,6 @@ public class XMLElement extends XMLNode{
|
|||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
private String getIndentText(){
|
|
||||||
float scale=getIndentScale();
|
|
||||||
scale = scale * (float) getIndent();
|
|
||||||
int i=(int)scale;
|
|
||||||
if(i<=0){
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
if(i>40){
|
|
||||||
i=40;
|
|
||||||
}
|
|
||||||
StringBuilder builder=new StringBuilder();
|
|
||||||
int max=i;
|
|
||||||
i=0;
|
|
||||||
while (i<max){
|
|
||||||
builder.append(" ");
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
return builder.toString();
|
|
||||||
}
|
|
||||||
public String getTagName(){
|
public String getTagName(){
|
||||||
return mTagName;
|
return mTagName;
|
||||||
}
|
}
|
||||||
@ -584,12 +565,6 @@ public class XMLElement extends XMLNode{
|
|||||||
}
|
}
|
||||||
return writer.toString();
|
return writer.toString();
|
||||||
}
|
}
|
||||||
XMLTextAttribute getTextAttr(){
|
|
||||||
if(mTextAttribute==null){
|
|
||||||
mTextAttribute=new XMLTextAttribute();
|
|
||||||
}
|
|
||||||
return mTextAttribute;
|
|
||||||
}
|
|
||||||
private void appendTextContent(Writer writer) throws IOException {
|
private void appendTextContent(Writer writer) throws IOException {
|
||||||
for(XMLNode child:getChildNodes()){
|
for(XMLNode child:getChildNodes()){
|
||||||
if(child instanceof XMLElement){
|
if(child instanceof XMLElement){
|
||||||
@ -620,9 +595,6 @@ public class XMLElement extends XMLNode{
|
|||||||
appendText(text);
|
appendText(text);
|
||||||
}
|
}
|
||||||
private boolean appendAttributes(Writer writer, boolean newLineAttributes) throws IOException {
|
private boolean appendAttributes(Writer writer, boolean newLineAttributes) throws IOException {
|
||||||
if(mAttributes==null){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
boolean addedOnce=false;
|
boolean addedOnce=false;
|
||||||
for(XMLAttribute attr:mAttributes){
|
for(XMLAttribute attr:mAttributes){
|
||||||
if(attr.isEmpty()){
|
if(attr.isEmpty()){
|
||||||
@ -659,7 +631,7 @@ public class XMLElement extends XMLNode{
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
private boolean canAppendChildes(){
|
private boolean canAppendChildes(){
|
||||||
for(XMLElement child:mChildes){
|
for(XMLElement child: mChildElements){
|
||||||
if (!child.isEmpty()){
|
if (!child.isEmpty()){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -689,7 +661,7 @@ public class XMLElement extends XMLNode{
|
|||||||
private boolean appendChildes(Writer writer, boolean newLineAttributes) throws IOException {
|
private boolean appendChildes(Writer writer, boolean newLineAttributes) throws IOException {
|
||||||
boolean appendPrevious=true;
|
boolean appendPrevious=true;
|
||||||
boolean addedOnce=false;
|
boolean addedOnce=false;
|
||||||
for(XMLElement child:mChildes){
|
for(XMLElement child: mChildElements){
|
||||||
if(stopWriting(writer)){
|
if(stopWriting(writer)){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -797,7 +769,7 @@ public class XMLElement extends XMLNode{
|
|||||||
ElementWriter writer=new ElementWriter(strWriter, DEBUG_TO_STRING);
|
ElementWriter writer=new ElementWriter(strWriter, DEBUG_TO_STRING);
|
||||||
try {
|
try {
|
||||||
write(writer, false);
|
write(writer, false);
|
||||||
} catch (IOException e) {
|
} catch (IOException ignored) {
|
||||||
}
|
}
|
||||||
strWriter.flush();
|
strWriter.flush();
|
||||||
return strWriter.toString();
|
return strWriter.toString();
|
||||||
|
@ -1,86 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2022 github.com/REAndroid
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package com.reandroid.xml;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.Writer;
|
|
||||||
|
|
||||||
public class XMLTextAttribute extends XMLAttribute {
|
|
||||||
private String mText;
|
|
||||||
public XMLTextAttribute(){
|
|
||||||
super(null,null);
|
|
||||||
}
|
|
||||||
public void setText(String txt){
|
|
||||||
mText=txt;
|
|
||||||
}
|
|
||||||
public String getText(){
|
|
||||||
return mText;
|
|
||||||
}
|
|
||||||
public String getText(boolean unEscape){
|
|
||||||
if(unEscape){
|
|
||||||
return XMLUtil.unEscapeXmlChars(mText);
|
|
||||||
}
|
|
||||||
return mText;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public XMLTextAttribute cloneAttr(){
|
|
||||||
XMLTextAttribute textAttribute=new XMLTextAttribute();
|
|
||||||
textAttribute.setText(getText());
|
|
||||||
textAttribute.setValueId(getValueId());
|
|
||||||
return textAttribute;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public String getValue(){
|
|
||||||
return getText();
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void setValue(String val){
|
|
||||||
setText(val);
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj){
|
|
||||||
if(obj instanceof XMLTextAttribute){
|
|
||||||
XMLTextAttribute attr=(XMLTextAttribute)obj;
|
|
||||||
String s=getText();
|
|
||||||
if(s==null){
|
|
||||||
return attr.getText()==null;
|
|
||||||
}
|
|
||||||
return s.equals(attr.getText());
|
|
||||||
}
|
|
||||||
if(obj instanceof String){
|
|
||||||
String s2=(String)obj;
|
|
||||||
return s2.equals(getText());
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public boolean isEmpty(){
|
|
||||||
//return XMLUtil.isEmpty(getText());
|
|
||||||
return getText()==null;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public boolean write(Writer writer) throws IOException {
|
|
||||||
if(isEmpty()){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
writer.append(getText());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public String toString(){
|
|
||||||
return getText();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user