From dcee92b1ffe2b1ac98496965c6b0a3536dbc4d52 Mon Sep 17 00:00:00 2001 From: REAndroid Date: Fri, 17 Mar 2023 12:06:42 -0400 Subject: [PATCH] pick package with id --- .../java/com/reandroid/arsc/array/PackageArray.java | 13 ++++++++++++- .../java/com/reandroid/arsc/chunk/TableBlock.java | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) 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(); }