mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-04-30 22:34:24 +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;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class EncodeUtil {
|
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){
|
public static void sortValuesXml(List<File> fileList){
|
||||||
Comparator<File> cmp=new Comparator<File>() {
|
Comparator<File> cmp=new Comparator<File>() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -189,7 +189,7 @@
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
xmlFiles.addAll(
|
xmlFiles.addAll(
|
||||||
ApkUtil.recursiveFiles(mainDir, ApkUtil.FILE_NAME_PUBLIC_XML));
|
ApkUtil.recursiveFiles(dir, ApkUtil.FILE_NAME_PUBLIC_XML));
|
||||||
}
|
}
|
||||||
List<File> results = new ArrayList<>();
|
List<File> results = new ArrayList<>();
|
||||||
for(File file:xmlFiles){
|
for(File file:xmlFiles){
|
||||||
@ -197,6 +197,7 @@
|
|||||||
results.add(file);
|
results.add(file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
EncodeUtil.sortPublicXml(results);
|
||||||
return 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.PackageBlock;
|
||||||
import com.reandroid.lib.arsc.chunk.TypeBlock;
|
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.decoder.ValueDecoder;
|
||||||
import com.reandroid.lib.arsc.item.SpecString;
|
import com.reandroid.lib.arsc.item.SpecString;
|
||||||
import com.reandroid.lib.arsc.pool.TypeStringPool;
|
import com.reandroid.lib.arsc.pool.TypeStringPool;
|
||||||
@ -92,8 +93,13 @@ class XMLValuesEncoder {
|
|||||||
PackageBlock packageBlock = getMaterials().getCurrentPackage();
|
PackageBlock packageBlock = getMaterials().getCurrentPackage();
|
||||||
TypeStringPool typeStringPool = packageBlock.getTypeStringPool();
|
TypeStringPool typeStringPool = packageBlock.getTypeStringPool();
|
||||||
byte typeId = typeStringPool.idOf(type);
|
byte typeId = typeStringPool.idOf(type);
|
||||||
return packageBlock.getSpecTypePairArray()
|
SpecTypePair specTypePair
|
||||||
.getOrCreateTypeBlock(typeId, qualifiers);
|
= packageBlock.getSpecTypePairArray().getOrCreate(typeId);
|
||||||
|
int highest = specTypePair.getHighestEntryCount();
|
||||||
|
TypeBlock typeBlock = specTypePair
|
||||||
|
.getOrCreateTypeBlock(qualifiers);
|
||||||
|
typeBlock.getEntryBlockArray().ensureSize(highest);
|
||||||
|
return typeBlock;
|
||||||
}
|
}
|
||||||
EncodeMaterials getMaterials() {
|
EncodeMaterials getMaterials() {
|
||||||
return materials;
|
return materials;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user