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

Commit a8f70881 authored by Song Chun Fan's avatar Song Chun Fan Committed by Android (Google) Code Review
Browse files

Merge "Move appendBoolean to ArrayUtils" into main

parents eaf47343 377cf597
Loading
Loading
Loading
Loading
+1 −16
Original line number Diff line number Diff line
@@ -726,26 +726,11 @@ public class PackageImpl implements ParsedPackage, AndroidPackageInternal,
                this.usesSdkLibrariesVersionsMajor, versionMajor, true);
        this.usesSdkLibrariesCertDigests = ArrayUtils.appendElement(String[].class,
                this.usesSdkLibrariesCertDigests, certSha256Digests, true);
        this.usesSdkLibrariesOptional = appendBoolean(this.usesSdkLibrariesOptional,
        this.usesSdkLibrariesOptional = ArrayUtils.appendBoolean(this.usesSdkLibrariesOptional,
                usesSdkLibrariesOptional);
        return this;
    }

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

    @Override
    public PackageImpl addUsesStaticLibrary(String libraryName, long version,
            String[] certSha256Digests) {
+15 −0
Original line number Diff line number Diff line
@@ -619,6 +619,21 @@ public class ArrayUtils {
        return ret;
    }

    /**
     * Adds value to given array if not already present, providing set-like
     * behavior.
     */
    public static boolean[] appendBoolean(@Nullable boolean[] cur, boolean val) {
        if (cur == null) {
            return new boolean[] { val };
        }
        final int N = cur.length;
        boolean[] ret = new boolean[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.
+12 −0
Original line number Diff line number Diff line
@@ -160,6 +160,18 @@ public class ArrayUtilsTest {
                ArrayUtils.appendLong(new long[] { 1, 2 }, 1));
    }

    @Test
    public void testAppendBoolean() throws Exception {
        assertArrayEquals(new boolean[] { true },
                ArrayUtils.appendBoolean(null, true));
        assertArrayEquals(new boolean[] { true },
                ArrayUtils.appendBoolean(new boolean[] { }, true));
        assertArrayEquals(new boolean[] { true, false },
                ArrayUtils.appendBoolean(new boolean[] { true }, false));
        assertArrayEquals(new boolean[] { true, true },
                ArrayUtils.appendBoolean(new boolean[] { true }, true));
    }

    @Test
    public void testRemoveLong() throws Exception {
        assertNull(ArrayUtils.removeLong(null, 1));
+1 −1
Original line number Diff line number Diff line
@@ -2570,7 +2570,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                    outPs.getUsesSdkLibraries(), libName));
            outPs.setUsesSdkLibrariesVersionsMajor(ArrayUtils.appendLong(
                    outPs.getUsesSdkLibrariesVersionsMajor(), libVersion));
            outPs.setUsesSdkLibrariesOptional(PackageImpl.appendBoolean(
            outPs.setUsesSdkLibrariesOptional(ArrayUtils.appendBoolean(
                    outPs.getUsesSdkLibrariesOptional(), optional));
        }