mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-04-30 14:24:25 +02:00
sort package directories
This commit is contained in:
parent
caa721b90f
commit
ee2bd9108e
@ -22,6 +22,17 @@ package com.reandroid.lib.apk.xmlencoder;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class EncodeUtil {
|
||||
public static void sortPublicXml(List<File> fileList){
|
||||
Comparator<File> cmp=new Comparator<File>() {
|
||||
@Override
|
||||
public int compare(File f1, File f2) {
|
||||
String n1=f1.getAbsolutePath();
|
||||
String n2=f2.getAbsolutePath();
|
||||
return n1.compareTo(n2);
|
||||
}
|
||||
};
|
||||
fileList.sort(cmp);
|
||||
}
|
||||
public static void sortValuesXml(List<File> fileList){
|
||||
Comparator<File> cmp=new Comparator<File>() {
|
||||
@Override
|
||||
|
@ -189,7 +189,7 @@
|
||||
continue;
|
||||
}
|
||||
xmlFiles.addAll(
|
||||
ApkUtil.recursiveFiles(mainDir, ApkUtil.FILE_NAME_PUBLIC_XML));
|
||||
ApkUtil.recursiveFiles(dir, ApkUtil.FILE_NAME_PUBLIC_XML));
|
||||
}
|
||||
List<File> results = new ArrayList<>();
|
||||
for(File file:xmlFiles){
|
||||
@ -197,6 +197,7 @@
|
||||
results.add(file);
|
||||
}
|
||||
}
|
||||
EncodeUtil.sortPublicXml(results);
|
||||
return results;
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,7 @@ package com.reandroid.lib.apk.xmlencoder;
|
||||
|
||||
import com.reandroid.lib.arsc.chunk.PackageBlock;
|
||||
import com.reandroid.lib.arsc.chunk.TypeBlock;
|
||||
import com.reandroid.lib.arsc.container.SpecTypePair;
|
||||
import com.reandroid.lib.arsc.decoder.ValueDecoder;
|
||||
import com.reandroid.lib.arsc.item.SpecString;
|
||||
import com.reandroid.lib.arsc.pool.TypeStringPool;
|
||||
@ -92,8 +93,13 @@ class XMLValuesEncoder {
|
||||
PackageBlock packageBlock = getMaterials().getCurrentPackage();
|
||||
TypeStringPool typeStringPool = packageBlock.getTypeStringPool();
|
||||
byte typeId = typeStringPool.idOf(type);
|
||||
return packageBlock.getSpecTypePairArray()
|
||||
.getOrCreateTypeBlock(typeId, qualifiers);
|
||||
SpecTypePair specTypePair
|
||||
= packageBlock.getSpecTypePairArray().getOrCreate(typeId);
|
||||
int highest = specTypePair.getHighestEntryCount();
|
||||
TypeBlock typeBlock = specTypePair
|
||||
.getOrCreateTypeBlock(qualifiers);
|
||||
typeBlock.getEntryBlockArray().ensureSize(highest);
|
||||
return typeBlock;
|
||||
}
|
||||
EncodeMaterials getMaterials() {
|
||||
return materials;
|
||||
|
Loading…
x
Reference in New Issue
Block a user