summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/pm/parsing/pkg/PackageImpl.java17
-rw-r--r--core/java/com/android/internal/util/ArrayUtils.java15
-rw-r--r--core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java12
-rw-r--r--services/core/java/com/android/server/pm/Settings.java2
4 files changed, 29 insertions, 17 deletions
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 f7e1f7293ac6..83acc47d637f 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 @@ 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) {
diff --git a/core/java/com/android/internal/util/ArrayUtils.java b/core/java/com/android/internal/util/ArrayUtils.java
index 9d0be4bf8ee6..8f00f79e7179 100644
--- a/core/java/com/android/internal/util/ArrayUtils.java
+++ b/core/java/com/android/internal/util/ArrayUtils.java
@@ -623,6 +623,21 @@ public class ArrayUtils {
* 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 0c5e9664bbde..fc233fba082e 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 @@ public class ArrayUtilsTest {
}
@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 cfbaae3d0f30..460bbb7e4b41 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -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));
}