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

Commit 377cf597 authored by Joanne Chung's avatar Joanne Chung
Browse files

Move appendBoolean to ArrayUtils

Bug: 314036181
Test: atest PackageManagerShellCommandInstallTest
Test: ArrayUtilsTest#testAppendBoolean

Change-Id: Iec32b62d3d86c32b030f94bf49b212b7020d814a
parent cc024fb2
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
@@ -2556,7 +2556,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));
        }