mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-04-30 06:14:25 +02:00
fix issue on attribute format encoding
This commit is contained in:
parent
0ec2b3fe1c
commit
1037986e95
@ -63,8 +63,7 @@ class XMLValuesEncoderAttr extends XMLValuesEncoderBag{
|
|||||||
AttributeValueType[] valueTypes = AttributeValueType
|
AttributeValueType[] valueTypes = AttributeValueType
|
||||||
.valuesOf(parentElement.getAttributeValue("formats"));
|
.valuesOf(parentElement.getAttributeValue("formats"));
|
||||||
|
|
||||||
formatItem.setDataLow((short) (0xffff &
|
formatItem.setDataLow((short) (0xff & AttributeValueType.sumValues(valueTypes)));
|
||||||
AttributeValueType.getByte(valueTypes)));
|
|
||||||
|
|
||||||
bagIndex++;
|
bagIndex++;
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ public class AttributeBagItem {
|
|||||||
if(valueType == null || getItemType()!=AttributeItemType.FORMAT){
|
if(valueType == null || getItemType()!=AttributeItemType.FORMAT){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int value = 0xff & valueType.getByte();
|
int value = 0xff & valueType.sumValues();
|
||||||
int dataLow = 0xffff & getBagItem().getData();
|
int dataLow = 0xffff & getBagItem().getData();
|
||||||
return (dataLow & value) == value;
|
return (dataLow & value) == value;
|
||||||
}
|
}
|
||||||
@ -97,7 +97,7 @@ public class AttributeBagItem {
|
|||||||
if(valueType == null || getItemType()!=AttributeItemType.FORMAT){
|
if(valueType == null || getItemType()!=AttributeItemType.FORMAT){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int value = 0xff & valueType.getByte();
|
int value = 0xff & valueType.sumValues();
|
||||||
int dataLow = 0xffff & getBagItem().getData();
|
int dataLow = 0xffff & getBagItem().getData();
|
||||||
return (dataLow == value);
|
return (dataLow == value);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2022 github.com/REAndroid
|
* Copyright (C) 2022 github.com/REAndroid
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -34,7 +34,7 @@ import java.util.*;
|
|||||||
AttributeValueType(byte b) {
|
AttributeValueType(byte b) {
|
||||||
this.mByte=b;
|
this.mByte=b;
|
||||||
}
|
}
|
||||||
public byte getByte(){
|
public byte sumValues(){
|
||||||
return mByte;
|
return mByte;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
@ -65,18 +65,18 @@ import java.util.*;
|
|||||||
}
|
}
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
public static byte getByte(AttributeValueType[] valueTypes){
|
public static int sumValues(AttributeValueType[] valueTypes){
|
||||||
if(valueTypes==null){
|
if(valueTypes==null){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int i=0;
|
int result = 0;
|
||||||
for(AttributeValueType vt:valueTypes){
|
for(AttributeValueType vt:valueTypes){
|
||||||
if(vt==null){
|
if(vt == null){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
i=i|(0xff & vt.mByte);
|
result = result | (0xff & vt.mByte);
|
||||||
}
|
}
|
||||||
return (byte) (0xff & i);
|
return result;
|
||||||
}
|
}
|
||||||
public static AttributeValueType valueOf(byte b){
|
public static AttributeValueType valueOf(byte b){
|
||||||
AttributeValueType[] all=values();
|
AttributeValueType[] all=values();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user