compare configs with more specific

This commit is contained in:
REAndroid 2023-04-12 15:34:49 +02:00
parent a1b44908a9
commit e53f294258

View File

@ -47,6 +47,30 @@
this.configSize.setBlockLoad(this); this.configSize.setBlockLoad(this);
this.mQualifiersStamp = 0; this.mQualifiersStamp = 0;
} }
public boolean isEqualOrMoreSpecificThan(ResConfig resConfig){
if(resConfig == null){
return false;
}
if(resConfig == this || resConfig.isDefault()){
return true;
}
byte[] bytes = ByteArray.trimTrailZeros(this.mValuesContainer.getBytes());
byte[] otherBytes = ByteArray.trimTrailZeros(resConfig.mValuesContainer.getBytes());
int max = otherBytes.length;
if(max > bytes.length){
return false;
}
for(int i=0; i<max; i++){
byte other = otherBytes[i];
if(other == 0){
continue;
}
if(bytes[i] != other){
return false;
}
}
return true;
}
public void copyFrom(ResConfig resConfig){ public void copyFrom(ResConfig resConfig){
if(resConfig==this||resConfig==null){ if(resConfig==this||resConfig==null){
return; return;