Merge "PackageInfo: add Parcel read/write for cert history."

This commit is contained in:
TreeHugger Robot
2018-02-07 21:03:32 +00:00
committed by Android (Google) Code Review

View File

@@ -468,6 +468,18 @@ public class PackageInfo implements Parcelable {
dest.writeBoolean(mOverlayIsStatic);
dest.writeInt(compileSdkVersion);
dest.writeString(compileSdkVersionCodename);
writeSigningCertificateHistoryToParcel(dest, parcelableFlags);
}
private void writeSigningCertificateHistoryToParcel(Parcel dest, int parcelableFlags) {
if (signingCertificateHistory != null) {
dest.writeInt(signingCertificateHistory.length);
for (int i = 0; i < signingCertificateHistory.length; i++) {
dest.writeTypedArray(signingCertificateHistory[i], parcelableFlags);
}
} else {
dest.writeInt(-1);
}
}
public static final Parcelable.Creator<PackageInfo> CREATOR
@@ -523,6 +535,7 @@ public class PackageInfo implements Parcelable {
mOverlayIsStatic = source.readBoolean();
compileSdkVersion = source.readInt();
compileSdkVersionCodename = source.readString();
readSigningCertificateHistoryFromParcel(source);
// The component lists were flattened with the redundant ApplicationInfo
// instances omitted. Distribute the canonical one here as appropriate.
@@ -534,6 +547,16 @@ public class PackageInfo implements Parcelable {
}
}
private void readSigningCertificateHistoryFromParcel(Parcel source) {
int len = source.readInt();
if (len != -1) {
signingCertificateHistory = new Signature[len][];
for (int i = 0; i < len; i++) {
signingCertificateHistory[i] = source.createTypedArray(Signature.CREATOR);
}
}
}
private void propagateApplicationInfo(ApplicationInfo appInfo, ComponentInfo[] components) {
if (components != null) {
for (ComponentInfo ci : components) {