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

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

Merge "Append entries for real"

parents d66301f7 8a10ef58
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2689,9 +2689,9 @@ public class PackageParser {
        certSha256 = certSha256.replace(":", "").toLowerCase();
        pkg.usesStaticLibraries = ArrayUtils.add(pkg.usesStaticLibraries, lname);
        pkg.usesStaticLibrariesVersions = ArrayUtils.appendInt(
                pkg.usesStaticLibrariesVersions, version);
                pkg.usesStaticLibrariesVersions, version, true);
        pkg.usesStaticLibrariesCertDigests = ArrayUtils.appendElement(String.class,
                pkg.usesStaticLibrariesCertDigests, certSha256);
                pkg.usesStaticLibrariesCertDigests, certSha256, true);

        XmlUtils.skipCurrentTag(parser);

+26 −7
Original line number Diff line number Diff line
@@ -260,10 +260,19 @@ public class ArrayUtils {
     */
    @SuppressWarnings("unchecked")
    public static @NonNull <T> T[] appendElement(Class<T> kind, @Nullable T[] array, T element) {
        return appendElement(kind, array, element, false);
    }

    /**
     * Adds value to given array.
     */
    @SuppressWarnings("unchecked")
    public static @NonNull <T> T[] appendElement(Class<T> kind, @Nullable T[] array, T element,
            boolean allowDuplicates) {
        final T[] result;
        final int end;
        if (array != null) {
            if (contains(array, element)) return array;
            if (!allowDuplicates && contains(array, element)) return array;
            end = array.length;
            result = (T[])Array.newInstance(kind, end + 1);
            System.arraycopy(array, 0, result, 0, end);
@@ -299,25 +308,35 @@ public class ArrayUtils {
    }

    /**
     * Adds value to given array if not already present, providing set-like
     * behavior.
     * Adds value to given array.
     */
    public static @NonNull int[] appendInt(@Nullable int[] cur, int val) {
    public static @NonNull int[] appendInt(@Nullable int[] cur, int val,
            boolean allowDuplicates) {
        if (cur == null) {
            return new int[] { val };
        }
        final int N = cur.length;
        if (!allowDuplicates) {
            for (int i = 0; i < N; i++) {
                if (cur[i] == val) {
                    return cur;
                }
            }
        }
        int[] ret = new int[N + 1];
        System.arraycopy(cur, 0, ret, 0, N);
        ret[N] = val;
        return ret;
    }

    /**
     * Adds value to given array if not already present, providing set-like
     * behavior.
     */
    public static @NonNull int[] appendInt(@Nullable int[] cur, int val) {
        return appendInt(cur, val, false);
    }

    /**
     * Removes value from given array if present, providing set-like behavior.
     */