Loading core/java/com/android/internal/pm/parsing/pkg/PackageImpl.java +1 −16 Original line number Diff line number Diff line Loading @@ -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) { Loading core/java/com/android/internal/util/ArrayUtils.java +15 −0 Original line number Diff line number Diff line Loading @@ -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. Loading core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -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)); Loading services/core/java/com/android/server/pm/Settings.java +1 −1 Original line number Diff line number Diff line Loading @@ -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)); } Loading Loading
core/java/com/android/internal/pm/parsing/pkg/PackageImpl.java +1 −16 Original line number Diff line number Diff line Loading @@ -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) { Loading
core/java/com/android/internal/util/ArrayUtils.java +15 −0 Original line number Diff line number Diff line Loading @@ -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. Loading
core/tests/utiltests/src/com/android/internal/util/ArrayUtilsTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -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)); Loading
services/core/java/com/android/server/pm/Settings.java +1 −1 Original line number Diff line number Diff line Loading @@ -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)); } Loading