Skip to content

Commit c8002af

Browse files
committed
Avoid java.util.ArrayList usages #71 fixes REAndroid/APKEditor#116
1 parent 52bc7cf commit c8002af

File tree

11 files changed

+30
-28
lines changed

11 files changed

+30
-28
lines changed

src/main/java/com/reandroid/apk/ApkBundle.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.reandroid.archive.ZipEntryMap;
1919
import com.reandroid.archive.block.ApkSignatureBlock;
2020
import com.reandroid.arsc.chunk.TableBlock;
21+
import com.reandroid.utils.collection.ArrayCollection;
2122

2223
import java.io.Closeable;
2324
import java.io.File;
@@ -110,7 +111,7 @@ public ApkModule getBaseModule(){
110111
return null;
111112
}
112113
public List<ApkModule> getApkModuleList(){
113-
return new ArrayList<>(mModulesMap.values());
114+
return new ArrayCollection<>(mModulesMap.values());
114115
}
115116
public void loadApkDirectory(File dir) throws IOException{
116117
loadApkDirectory(dir, false);

src/main/java/com/reandroid/apk/FrameworkOptimizer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.reandroid.arsc.model.ResourceEntry;
2828
import com.reandroid.arsc.pool.ResXmlStringPool;
2929
import com.reandroid.arsc.value.*;
30+
import com.reandroid.utils.collection.ArrayCollection;
3031

3132
import java.io.IOException;
3233
import java.util.*;
@@ -150,7 +151,7 @@ private void compressManifest(AndroidManifestBlock manifestBlock){
150151
logMessage("Manifest size reduced by: "+percent+" %");
151152
}
152153
private List<ResXmlNode> getManifestElementToRemove(ResXmlElement manifest){
153-
List<ResXmlNode> results = new ArrayList<>();
154+
List<ResXmlNode> results = new ArrayCollection<>();
154155
for(ResXmlNode node:manifest.listXmlNodes()){
155156
if(!(node instanceof ResXmlElement)){
156157
continue;

src/main/java/com/reandroid/arsc/base/BlockDiff.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
*/
1616
package com.reandroid.arsc.base;
1717

18-
import java.util.ArrayList;
18+
import com.reandroid.utils.collection.ArrayCollection;
19+
1920
import java.util.List;
2021
import java.util.Objects;
2122

@@ -32,7 +33,7 @@ public DiffResult[] find(){
3233
public DiffResult[] find(int limit){
3334
byte[] bytes_a = block_a.getBytes();
3435
byte[] bytes_b = block_b.getBytes();
35-
List<DiffResult> results = new ArrayList<>();
36+
List<DiffResult> results = new ArrayCollection<>();
3637
int start = 0;
3738
int position = findByteDifferencePosition(start, bytes_a, bytes_b);
3839
while (limit < 0 || results.size() < limit){

src/main/java/com/reandroid/arsc/chunk/TypeBlock.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@
3232
import com.reandroid.json.JSONObject;
3333
import com.reandroid.utils.HexUtil;
3434
import com.reandroid.utils.ObjectsUtil;
35+
import com.reandroid.utils.collection.CollectionUtil;
3536
import com.reandroid.utils.collection.IterableIterator;
3637

3738
import java.io.ByteArrayOutputStream;
3839
import java.io.IOException;
39-
import java.util.ArrayList;
4040
import java.util.Iterator;
4141
import java.util.List;
4242

@@ -288,14 +288,8 @@ public void ensureEntriesCount(int count){
288288
entryArray.ensureSize(count);
289289
entryArray.refreshCount();
290290
}
291-
public List<Entry> listEntries(boolean skipNullBlock){
292-
List<Entry> results=new ArrayList<>();
293-
Iterator<Entry> itr = getEntryArray().iterator(skipNullBlock);
294-
while (itr.hasNext()){
295-
Entry block=itr.next();
296-
results.add(block);
297-
}
298-
return results;
291+
public List<Entry> listEntries(boolean skipNullBlock) {
292+
return CollectionUtil.toList(getEntryArray().iterator(skipNullBlock));
299293
}
300294
public Entry getEntry(int entryId){
301295
return getEntryArray().getEntry(entryId);

src/main/java/com/reandroid/arsc/chunk/xml/AndroidManifestBlock.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
import com.reandroid.arsc.io.BlockReader;
2323
import com.reandroid.arsc.model.ResourceEntry;
2424
import com.reandroid.arsc.value.ValueType;
25+
import com.reandroid.utils.collection.ArrayCollection;
2526
import com.reandroid.utils.collection.FilterIterator;
2627

2728
import java.io.File;
2829
import java.io.IOException;
2930
import java.io.InputStream;
30-
import java.util.ArrayList;
3131
import java.util.Iterator;
3232
import java.util.List;
3333

@@ -283,7 +283,7 @@ public List<ResXmlElement> listActivities(){
283283
public List<ResXmlElement> listActivities(boolean includeActivityAlias){
284284
ResXmlElement application=getApplicationElement();
285285
if(application==null){
286-
return new ArrayList<>();
286+
return new ArrayCollection<>();
287287
}
288288
List<ResXmlElement> results = application.listElements(TAG_activity);
289289
if(includeActivityAlias && !results.isEmpty()){
@@ -294,12 +294,12 @@ public List<ResXmlElement> listActivities(boolean includeActivityAlias){
294294
public List<ResXmlElement> listApplicationElementsByTag(String tag){
295295
ResXmlElement application=getApplicationElement();
296296
if(application==null){
297-
return new ArrayList<>();
297+
return new ArrayCollection<>();
298298
}
299299
return application.listElements(tag);
300300
}
301301
public List<String> getUsesPermissions(){
302-
List<String> results=new ArrayList<>();
302+
List<String> results = new ArrayCollection<>();
303303
ResXmlElement manifestElement=getManifestElement();
304304
if(manifestElement==null){
305305
return results;

src/main/java/com/reandroid/arsc/chunk/xml/ParserEventList.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818

1919
import com.reandroid.arsc.coder.XmlSanitizer;
20+
import com.reandroid.utils.collection.ArrayCollection;
2021

21-
import java.util.ArrayList;
2222
import java.util.Iterator;
2323
import java.util.List;
2424

@@ -28,7 +28,7 @@ public class ParserEventList implements Iterator<ParserEvent> {
2828
private ParserEvent mCurrent;
2929
private int type = -1;
3030
public ParserEventList(){
31-
this.eventList = new ArrayList<>();
31+
this.eventList = new ArrayCollection<>();
3232
}
3333
public void clear(){
3434
this.eventList.clear();

src/main/java/com/reandroid/arsc/chunk/xml/ResXmlElement.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ private void clearNullNodes(boolean recursive){
301301
}
302302
int removeUnusedNamespaces(){
303303
int count = 0;
304-
List<ResXmlStartNamespace> nsList = new ArrayList<>(getStartNamespaceList());
304+
List<ResXmlStartNamespace> nsList = new ArrayCollection<>(getStartNamespaceList());
305305
for(ResXmlStartNamespace ns : nsList){
306306
boolean removed = ns.removeIfNoReference();
307307
if(removed){

src/main/java/com/reandroid/arsc/container/SpecTypePair.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import com.reandroid.json.JSONConvert;
3636
import com.reandroid.json.JSONObject;
3737
import com.reandroid.utils.HexUtil;
38+
import com.reandroid.utils.collection.ArrayCollection;
3839
import com.reandroid.utils.collection.ComputeIterator;
3940
import com.reandroid.utils.collection.EmptyIterator;
4041
import com.reandroid.utils.collection.MergingIterator;
@@ -302,7 +303,7 @@ public PackageBlock getPackageBlock(){
302303
return getParent(PackageBlock.class);
303304
}
304305
public List<Entry> listEntries(int entryId){
305-
List<Entry> results=new ArrayList<>();
306+
List<Entry> results=new ArrayCollection<>();
306307
Iterator<TypeBlock> itr = mTypeBlockArray.iterator(true);
307308
while (itr.hasNext()){
308309
TypeBlock typeBlock=itr.next();
@@ -315,7 +316,7 @@ public List<Entry> listEntries(int entryId){
315316
return results;
316317
}
317318
public List<Entry> listEntries(String entryName){
318-
List<Entry> results = new ArrayList<>();
319+
List<Entry> results = new ArrayCollection<>();
319320
Iterator<TypeBlock> itr = mTypeBlockArray.iterator(true);
320321
while (itr.hasNext()){
321322
TypeBlock typeBlock = itr.next();

src/main/java/com/reandroid/arsc/model/FrameworkTable.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@
2929
import com.reandroid.arsc.value.Entry;
3030
import com.reandroid.arsc.value.ResConfig;
3131
import com.reandroid.common.FileChannelInputStream;
32+
import com.reandroid.utils.collection.ArrayCollection;
3233

3334
import java.io.File;
3435
import java.io.IOException;
3536
import java.io.InputStream;
36-
import java.util.ArrayList;
3737
import java.util.Iterator;
3838
import java.util.List;
3939

@@ -192,7 +192,7 @@ private void shrinkTableString(){
192192
tableStringPool.refresh();
193193
}
194194
private void shrinkTableString(TableString zero, TableString tableString){
195-
List<ReferenceItem> allRef = new ArrayList<>(tableString.getReferencedList());
195+
List<ReferenceItem> allRef = new ArrayCollection<>(tableString.getReferencedList());
196196
tableString.removeAllReference();
197197
for(ReferenceItem item:allRef){
198198
item.set(zero.getIndex());

src/main/java/com/reandroid/common/ReferenceResolver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public List<Entry> resolveAll(int referenceId){
6161
}
6262
public synchronized List<Entry> resolveAll(int referenceId, Predicate<Entry> filter){
6363
resolveReference(referenceId, filter);
64-
List<Entry> results = new ArrayList<>(this.results);
64+
List<Entry> results = new ArrayCollection<>(this.results);
6565
reset();
6666
return results;
6767
}
@@ -105,7 +105,7 @@ private void addResult(Predicate<Entry> filter, Entry entry){
105105
}
106106
}
107107
private List<Entry> listNonNullEntries(int resourceId){
108-
List<Entry> results = new ArrayList<>();
108+
List<Entry> results = new ArrayCollection<>();
109109
ResourceEntry resourceEntry = this.entryStore.getResource(resourceId);
110110
if(resourceEntry == null){
111111
return results;

0 commit comments

Comments
 (0)