fix: encode unknown hex reference id

This commit is contained in:
REAndroid 2023-02-11 14:03:18 -05:00
parent cf7befd92a
commit 3f7dc3bf9f

View File

@ -99,8 +99,12 @@ class XMLValuesEncoderAttr extends XMLValuesEncoderBag{
for(int i=0;i<count;i++){
XMLElement child=element.getChildAt(i);
int resourceId=materials.resolveLocalResourceId("id",
child.getAttributeValue("name"));
String name = child.getAttributeValue("name");
int resourceId = decodeUnknownAttributeHex(name);
if(resourceId==0){
resourceId=materials.resolveLocalResourceId("id",
name);
}
ValueDecoder.EncodeResult encodeResult =
ValueDecoder.encodeHexOrInt(child.getTextContent());
@ -128,4 +132,14 @@ class XMLValuesEncoderAttr extends XMLValuesEncoderBag{
}
return 0;
}
private int decodeUnknownAttributeHex(String name){
if(name.length()==0||name.charAt(0)!='@'){
return 0;
}
name=name.substring(1);
if(!ValueDecoder.isHex(name)){
return 0;
}
return ValueDecoder.parseHex(name);
}
}