diff --git a/src/main/java/com/reandroid/arsc/array/PackageArray.java b/src/main/java/com/reandroid/arsc/array/PackageArray.java index 5b69695..7791538 100755 --- a/src/main/java/com/reandroid/arsc/array/PackageArray.java +++ b/src/main/java/com/reandroid/arsc/array/PackageArray.java @@ -45,7 +45,12 @@ public class PackageArray extends BlockArray clearChildes(); } public PackageBlock pickOne(){ - PackageBlock[] items=getChildes(); + return pickOne(getChildes(), 0); + } + public PackageBlock pickOne(int packageId){ + return pickOne(getChildes(), packageId); + } + private PackageBlock pickOne(PackageBlock[] items, int packageId){ if(items==null||items.length==0){ return null; } @@ -54,6 +59,12 @@ public class PackageArray extends BlockArray } PackageBlock largest=null; for(PackageBlock packageBlock:items){ + if(packageBlock == null){ + continue; + } + if(packageId!=0 && packageId!=packageBlock.getId()){ + continue; + } if(largest==null){ largest=packageBlock; }else if(packageBlock.getEntriesGroupMap().size() > diff --git a/src/main/java/com/reandroid/arsc/chunk/TableBlock.java b/src/main/java/com/reandroid/arsc/chunk/TableBlock.java index 2288349..8e3daa4 100755 --- a/src/main/java/com/reandroid/arsc/chunk/TableBlock.java +++ b/src/main/java/com/reandroid/arsc/chunk/TableBlock.java @@ -61,6 +61,9 @@ import java.util.*; public PackageBlock pickOne(){ return getPackageArray().pickOne(); } + public PackageBlock pickOne(int packageId){ + return getPackageArray().pickOne(packageId); + } public void sortPackages(){ getPackageArray().sort(); }