Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 05893719 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents c9bb8570 050b7997
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -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) {