sort signature info after loaded

This commit is contained in:
REAndroid 2023-04-29 20:18:16 +02:00
parent 744694ccee
commit d41bc5857c
2 changed files with 18 additions and 18 deletions

View File

@ -148,13 +148,7 @@ public class ApkSignatureBlock extends LengthPrefixedList<SignatureInfo>
}
@Override
public int compare(SignatureInfo info1, SignatureInfo info2) {
if(SignatureId.PADDING.equals(info1.getId())){
return 0;
}
if(SignatureId.PADDING.equals(info2.getId())){
return 1;
}
return 0;
return info1.getId().compareTo(info2.getId());
}
public static final String FILE_EXT = ".sig";

View File

@ -19,13 +19,15 @@ import com.reandroid.arsc.decoder.ValueDecoder;
import java.util.Objects;
public class SignatureId {
public class SignatureId implements Comparable<SignatureId>{
private final String name;
private final int id;
private final int sort;
private SignatureId(String name, int id) {
private SignatureId(String name, int id, int sort) {
this.name = name;
this.id = id;
this.sort = sort;
}
public String name() {
return name;
@ -51,6 +53,10 @@ public class SignatureId {
return id == that.id;
}
@Override
public int compareTo(SignatureId signatureId) {
return Integer.compare(sort, signatureId.sort);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
@ -76,7 +82,7 @@ public class SignatureId {
}
}
if (ValueDecoder.isHex(name)) {
return new SignatureId(null, ValueDecoder.parseHex(name));
return new SignatureId(null, ValueDecoder.parseHex(name), 99);
}
return null;
}
@ -86,20 +92,20 @@ public class SignatureId {
return signatureId;
}
}
return new SignatureId(null, id);
return new SignatureId(null, id, 99);
}
public static SignatureId[] values() {
return VALUES.clone();
}
public static final SignatureId V2 = new SignatureId("V2", 0x7109871A);
public static final SignatureId V3 = new SignatureId("V3", 0xF05368C0);
public static final SignatureId V31 = new SignatureId("V31", 0x1B93AD61);
public static final SignatureId STAMP_V1 = new SignatureId("STAMP_V1", 0x2B09189E);
public static final SignatureId STAMP_V2 = new SignatureId("STAMP_V2", 0x6DFF800D);
public static final SignatureId PADDING = new SignatureId("PADDING", 0x42726577);
public static final SignatureId NULL = new SignatureId("NULL", 0x0);
public static final SignatureId V2 = new SignatureId("V2", 0x7109871A, 0);
public static final SignatureId V3 = new SignatureId("V3", 0xF05368C0, 1);
public static final SignatureId V31 = new SignatureId("V31", 0x1B93AD61, 2);
public static final SignatureId STAMP_V1 = new SignatureId("STAMP_V1", 0x2B09189E, 3);
public static final SignatureId STAMP_V2 = new SignatureId("STAMP_V2", 0x6DFF800D, 4);
public static final SignatureId PADDING = new SignatureId("PADDING", 0x42726577, 9999);
public static final SignatureId NULL = new SignatureId("NULL", 0x0, 999);
private static final SignatureId[] VALUES = new SignatureId[]{
V2, V3, V31, STAMP_V1, STAMP_V2, PADDING, NULL