Merge "Move appendBoolean to ArrayUtils" into main
diff --git a/core/java/com/android/internal/pm/parsing/pkg/PackageImpl.java b/core/java/com/android/internal/pm/parsing/pkg/PackageImpl.java
index f7e1f72..83acc47 100644
--- a/core/java/com/android/internal/pm/parsing/pkg/PackageImpl.java
+++ b/core/java/com/android/internal/pm/parsing/pkg/PackageImpl.java
@@ -726,26 +726,11 @@
                 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) {
diff --git a/core/java/com/android/internal/util/ArrayUtils.java b/core/java/com/android/internal/util/ArrayUtils.java
index 9d0be4b..8f00f79 100644
--- a/core/java/com/android/internal/util/ArrayUtils.java
+++ b/core/java/com/android/internal/util/ArrayUtils.java
@@ -623,6 +623,21 @@
      * 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.
+     */
     public static @NonNull long[] appendLong(@Nullable long[] cur, long val) {
         return appendLong(cur, val, false);
     }
diff --git a/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java b/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java
index 0c5e966..fc233fb 100644
--- a/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java
+++ b/core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java
@@ -161,6 +161,18 @@
     }
 
     @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));
         assertArrayEquals(new long[] { },
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index d695226..cdf1f94 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -2570,7 +2570,7 @@
                     outPs.getUsesSdkLibraries(), libName));
             outPs.setUsesSdkLibrariesVersionsMajor(ArrayUtils.appendLong(
                     outPs.getUsesSdkLibrariesVersionsMajor(), libVersion));
-            outPs.setUsesSdkLibrariesOptional(PackageImpl.appendBoolean(
+            outPs.setUsesSdkLibrariesOptional(ArrayUtils.appendBoolean(
                     outPs.getUsesSdkLibrariesOptional(), optional));
         }