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

Commit 8a10ef58 authored by Svet Ganov's avatar Svet Ganov
Browse files

Append entries for real

Test: manual

bug:35447008

Change-Id: I8ddbd39395f5064f7797562c3a423ba555c0c933
parent 3d52f79b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2691,9 +2691,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.
     */