mirror of
https://github.com/revanced/ARSCLib.git
synced 2025-04-30 06:14:25 +02:00
95 lines
2.4 KiB
Java
95 lines
2.4 KiB
Java
package com.reandroid.lib.arsc.value;
|
|
|
|
import com.reandroid.lib.arsc.io.BlockReader;
|
|
import com.reandroid.lib.arsc.item.ReferenceItem;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
public class ResValueInt extends BaseResValueItem {
|
|
public ResValueInt() {
|
|
super(BYTES_COUNT);
|
|
setHeaderSize(BYTES_SIZE);
|
|
}
|
|
@Override
|
|
public void setHeaderSize(short size) {
|
|
setShort(OFFSET_SIZE, size);
|
|
}
|
|
@Override
|
|
public short getHeaderSize() {
|
|
return getShort(OFFSET_SIZE);
|
|
}
|
|
@Override
|
|
public void setReserved(byte reserved) {
|
|
setByte(OFFSET_RESERVED, reserved);
|
|
}
|
|
@Override
|
|
public byte getReserved() {
|
|
return getByte(OFFSET_RESERVED);
|
|
}
|
|
@Override
|
|
public void setType(byte type){
|
|
byte old=getType();
|
|
if(type==old){
|
|
return;
|
|
}
|
|
removeTableReference();
|
|
setByte(OFFSET_TYPE, type);
|
|
if(type==ValueType.STRING.getByte()){
|
|
addTableReference(getTableStringReference());
|
|
}
|
|
}
|
|
@Override
|
|
public byte getType(){
|
|
return getByte(OFFSET_TYPE);
|
|
}
|
|
@Override
|
|
public int getData(){
|
|
return getInt(OFFSET_DATA);
|
|
}
|
|
@Override
|
|
public void setData(int data){
|
|
int old=getData();
|
|
if(data==old){
|
|
return;
|
|
}
|
|
removeTableReference();
|
|
setInt(OFFSET_DATA, data);
|
|
if(getValueType()==ValueType.STRING){
|
|
addTableReference(getTableStringReference());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
public void onReadBytes(BlockReader reader) throws IOException {
|
|
super.onReadBytes(reader);
|
|
}
|
|
@Override
|
|
public String toString(){
|
|
StringBuilder builder=new StringBuilder();
|
|
builder.append(getClass().getSimpleName());
|
|
builder.append(" type=");
|
|
ValueType vt=getValueType();
|
|
if(vt!=null){
|
|
builder.append(vt.name());
|
|
}else {
|
|
builder.append("Unknown");
|
|
}
|
|
builder.append('(');
|
|
builder.append(String.format("0x%02x", getType()));
|
|
builder.append("), data=");
|
|
builder.append(String.format("0x%08x", getData()));
|
|
return builder.toString();
|
|
}
|
|
|
|
private static final int OFFSET_SIZE=0;
|
|
private static final int OFFSET_RESERVED=2;
|
|
private static final int OFFSET_TYPE=3;
|
|
private static final int OFFSET_DATA=4;
|
|
|
|
private static final int BYTES_COUNT=8;
|
|
|
|
private static final short BYTES_SIZE=0x08;
|
|
}
|