diff --git a/src/main/java/com/reandroid/apk/ApkModule.java b/src/main/java/com/reandroid/apk/ApkModule.java index 9eceda5..c1dd959 100644 --- a/src/main/java/com/reandroid/apk/ApkModule.java +++ b/src/main/java/com/reandroid/apk/ApkModule.java @@ -180,7 +180,7 @@ public class ApkModule { continue; } for(TableString tableString:groupTableString.listItems()){ - List entryList = tableString.listReferencedEntries(); + List entryList = tableString.listReferencedResValueEntries(); if(entryList.size()==0){ continue; } diff --git a/src/main/java/com/reandroid/arsc/array/StringArray.java b/src/main/java/com/reandroid/arsc/array/StringArray.java index 142943c..37140f7 100755 --- a/src/main/java/com/reandroid/arsc/array/StringArray.java +++ b/src/main/java/com/reandroid/arsc/array/StringArray.java @@ -58,7 +58,7 @@ public abstract class StringArray extends OffsetBlockArray public List listUnusedStrings(){ List results=new ArrayList<>(); for(T item:listItems()){ - if(item.getReferencedList().size()==0){ + if(!item.hasReference()){ results.add(item); } } diff --git a/src/main/java/com/reandroid/arsc/chunk/xml/ResIdBuilder.java b/src/main/java/com/reandroid/arsc/chunk/xml/ResIdBuilder.java index 0e72a08..43fe337 100644 --- a/src/main/java/com/reandroid/arsc/chunk/xml/ResIdBuilder.java +++ b/src/main/java/com/reandroid/arsc/chunk/xml/ResIdBuilder.java @@ -38,14 +38,14 @@ public class ResIdBuilder implements Comparator { xmlIDArray.ensureSize(size); for(int i=0;i0){ + if(xmlString.hasReference()){ ResXmlString replaceXmlString=new ResXmlString(xmlString.isUtf8(), xmlString.get()); xmlStringsArray.setItem(i, replaceXmlString); xmlStringsArray.add(xmlString); xmlString=replaceXmlString; } ResXmlID xmlID = xmlIDArray.get(i); - if(xmlID.getReferencedList().size()>0){ + if(xmlID.hasReference()){ ResXmlID replaceXmlId = new ResXmlID(xmlID.get()); xmlIDArray.setItem(i, replaceXmlId); xmlIDArray.add(xmlID); diff --git a/src/main/java/com/reandroid/arsc/chunk/xml/ResXmlAttribute.java b/src/main/java/com/reandroid/arsc/chunk/xml/ResXmlAttribute.java index 3e570e0..474cb6f 100755 --- a/src/main/java/com/reandroid/arsc/chunk/xml/ResXmlAttribute.java +++ b/src/main/java/com/reandroid/arsc/chunk/xml/ResXmlAttribute.java @@ -197,7 +197,7 @@ } @Override protected void onUnlinkDataString(StringItem stringItem){ - if(stringItem.getReferencedList().size()==0){ + if(!stringItem.hasReference()){ stringItem.set(""); } } @@ -277,7 +277,7 @@ return; } stringItem.removeReference(reference); - if(stringItem.getReferencedList().size()==0){ + if(!stringItem.hasReference()){ stringItem.set(""); } } diff --git a/src/main/java/com/reandroid/arsc/item/ResXmlID.java b/src/main/java/com/reandroid/arsc/item/ResXmlID.java index bcfb473..36e60a8 100755 --- a/src/main/java/com/reandroid/arsc/item/ResXmlID.java +++ b/src/main/java/com/reandroid/arsc/item/ResXmlID.java @@ -42,6 +42,9 @@ public class ResXmlID extends IntegerItem { mReferencedList.add(ref); } } + public boolean hasReference(){ + return mReferencedList.size()>0; + } public int getReferenceCount(){ return mReferencedList.size(); } diff --git a/src/main/java/com/reandroid/arsc/item/ResXmlString.java b/src/main/java/com/reandroid/arsc/item/ResXmlString.java index 1135995..5e65127 100755 --- a/src/main/java/com/reandroid/arsc/item/ResXmlString.java +++ b/src/main/java/com/reandroid/arsc/item/ResXmlString.java @@ -15,7 +15,6 @@ */ package com.reandroid.arsc.item; -import java.util.List; public class ResXmlString extends StringItem { public ResXmlString(boolean utf8) { @@ -25,9 +24,4 @@ public class ResXmlString extends StringItem { this(utf8); set(value); } - @Override - public String toString(){ - List refList = getReferencedList(); - return "USED BY="+refList.size()+"{"+super.toString()+"}"; - } } diff --git a/src/main/java/com/reandroid/arsc/item/SpecString.java b/src/main/java/com/reandroid/arsc/item/SpecString.java index d60fd3e..10f7697 100755 --- a/src/main/java/com/reandroid/arsc/item/SpecString.java +++ b/src/main/java/com/reandroid/arsc/item/SpecString.java @@ -15,8 +15,6 @@ */ package com.reandroid.arsc.item; - import java.util.List; - public class SpecString extends StringItem { public SpecString(boolean utf8) { super(utf8); @@ -26,9 +24,4 @@ package com.reandroid.arsc.item; // Spec (resource name) don't have style unless to obfuscate/confuse other decompilers return null; } - @Override - public String toString(){ - List refList = getReferencedList(); - return "USED BY="+refList.size()+"{"+super.toString()+"}"; - } } diff --git a/src/main/java/com/reandroid/arsc/item/StringItem.java b/src/main/java/com/reandroid/arsc/item/StringItem.java index e5d6222..6542c66 100755 --- a/src/main/java/com/reandroid/arsc/item/StringItem.java +++ b/src/main/java/com/reandroid/arsc/item/StringItem.java @@ -50,6 +50,9 @@ public class StringItem extends BlockItem implements JSONConvert { public void removeAllReference(){ mReferencedList.clear(); } + public boolean hasReference(){ + return mReferencedList.size()>0; + } public List getReferencedList(){ return mReferencedList; } @@ -250,11 +253,11 @@ public class StringItem extends BlockItem implements JSONConvert { } @Override public String toString(){ - String str=get(); + String str=getHtml(); if(str==null){ return "NULL"; } - return str; + return "USED BY="+getReferencedList().size()+"{"+str+"}"; } private static int[] decodeUtf8StringByteLength(byte[] lengthBytes) { diff --git a/src/main/java/com/reandroid/arsc/item/TableString.java b/src/main/java/com/reandroid/arsc/item/TableString.java index f011de2..b82f336 100755 --- a/src/main/java/com/reandroid/arsc/item/TableString.java +++ b/src/main/java/com/reandroid/arsc/item/TableString.java @@ -28,7 +28,7 @@ public class TableString extends StringItem { public TableString(boolean utf8) { super(utf8); } - public List listReferencedEntries(){ + public List listReferencedResValueEntries(){ List results=new ArrayList<>(); for(ReferenceItem ref:getReferencedList()){ if(!(ref instanceof ReferenceBlock)){ @@ -46,9 +46,4 @@ public class TableString extends StringItem { } return results; } - @Override - public String toString(){ - List refList = getReferencedList(); - return "USED BY="+refList.size()+"{"+super.toString()+"}"; - } } diff --git a/src/main/java/com/reandroid/arsc/item/TypeString.java b/src/main/java/com/reandroid/arsc/item/TypeString.java index 3806b69..50037b6 100755 --- a/src/main/java/com/reandroid/arsc/item/TypeString.java +++ b/src/main/java/com/reandroid/arsc/item/TypeString.java @@ -35,4 +35,8 @@ package com.reandroid.arsc.item; // Type don't have style unless to obfuscate/confuse other decompilers return null; } + @Override + public String toString(){ + return String.format("0x%02x", getId())+':'+get(); + } }