summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Sharkey <jsharkey@google.com> 2023-11-07 14:34:50 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-11-07 14:34:50 +0000
commit94fb5cf2a38373d109f9b61470c7e501e9ddf6b6 (patch)
tree0d89a981ff393c7edd853426f2b64ac9e2b36613
parent484f8bcb9910028594e3375dab8e17bcd7d387e6 (diff)
parent37ddff6079fbd21cbf881135cc560b2e61990114 (diff)
Merge changes from topic "nov6" into main
* changes: Support android.util.proto under Ravenwood. More android.util in Ravenwood, supported by CTS. More android.util in Ravenwood, supported by CTS.
-rw-r--r--core/java/android/util/ArraySet.java2
-rw-r--r--core/java/android/util/Base64.java1
-rw-r--r--core/java/android/util/IntArray.java2
-rw-r--r--core/java/android/util/LongArray.java2
-rw-r--r--core/java/android/util/LongArrayQueue.java2
-rw-r--r--core/java/android/util/LongSparseArray.java2
-rw-r--r--core/java/android/util/LongSparseLongArray.java2
-rw-r--r--core/java/android/util/Range.java5
-rw-r--r--core/java/android/util/SparseArray.java2
-rw-r--r--core/java/android/util/SparseBooleanArray.java2
-rw-r--r--core/java/android/util/SparseIntArray.java2
-rw-r--r--core/java/android/util/SparseLongArray.java2
-rw-r--r--core/java/com/android/internal/util/ArrayUtils.java35
-rw-r--r--framework-minus-apex-ravenwood-policies.txt80
14 files changed, 116 insertions, 25 deletions
diff --git a/core/java/android/util/ArraySet.java b/core/java/android/util/ArraySet.java
index 73114e26e417..adebe2cbb458 100644
--- a/core/java/android/util/ArraySet.java
+++ b/core/java/android/util/ArraySet.java
@@ -20,8 +20,6 @@ import android.annotation.Nullable;
import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage;
-import libcore.util.EmptyArray;
-
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collection;
diff --git a/core/java/android/util/Base64.java b/core/java/android/util/Base64.java
index 33cc5e37da62..92abd7c15f5f 100644
--- a/core/java/android/util/Base64.java
+++ b/core/java/android/util/Base64.java
@@ -26,7 +26,6 @@ import java.io.UnsupportedEncodingException;
* href="http://www.ietf.org/rfc/rfc2045.txt">2045</a> and <a
* href="http://www.ietf.org/rfc/rfc3548.txt">3548</a>.
*/
-@android.ravenwood.annotations.RavenwoodWholeClassKeep
public class Base64 {
/**
* Default values for encoder/decoder flags.
diff --git a/core/java/android/util/IntArray.java b/core/java/android/util/IntArray.java
index ac76fc2eb469..c04a71c4d31b 100644
--- a/core/java/android/util/IntArray.java
+++ b/core/java/android/util/IntArray.java
@@ -19,8 +19,6 @@ package android.util;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.Preconditions;
-import libcore.util.EmptyArray;
-
import java.util.Arrays;
/**
diff --git a/core/java/android/util/LongArray.java b/core/java/android/util/LongArray.java
index 9f269ed74048..3101c0da6986 100644
--- a/core/java/android/util/LongArray.java
+++ b/core/java/android/util/LongArray.java
@@ -23,8 +23,6 @@ import android.os.Build;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.Preconditions;
-import libcore.util.EmptyArray;
-
import java.util.Arrays;
/**
diff --git a/core/java/android/util/LongArrayQueue.java b/core/java/android/util/LongArrayQueue.java
index 5c701dbebdfb..354f8df0a43d 100644
--- a/core/java/android/util/LongArrayQueue.java
+++ b/core/java/android/util/LongArrayQueue.java
@@ -19,8 +19,6 @@ package android.util;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;
-import libcore.util.EmptyArray;
-
import java.util.NoSuchElementException;
/**
diff --git a/core/java/android/util/LongSparseArray.java b/core/java/android/util/LongSparseArray.java
index 2f14b2537cf9..8402ab2d871c 100644
--- a/core/java/android/util/LongSparseArray.java
+++ b/core/java/android/util/LongSparseArray.java
@@ -24,8 +24,6 @@ import com.android.internal.util.GrowingArrayUtils;
import com.android.internal.util.Preconditions;
import com.android.internal.util.function.LongObjPredicate;
-import libcore.util.EmptyArray;
-
import java.util.Arrays;
import java.util.Objects;
diff --git a/core/java/android/util/LongSparseLongArray.java b/core/java/android/util/LongSparseLongArray.java
index f23ec91f0b79..d4a012602f80 100644
--- a/core/java/android/util/LongSparseLongArray.java
+++ b/core/java/android/util/LongSparseLongArray.java
@@ -23,8 +23,6 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;
import com.android.internal.util.Preconditions;
-import libcore.util.EmptyArray;
-
/**
* Map of {@code long} to {@code long}. Unlike a normal array of longs, there
* can be gaps in the indices. It is intended to be more memory efficient than using a
diff --git a/core/java/android/util/Range.java b/core/java/android/util/Range.java
index 41c171a0bbd7..750696b9b90f 100644
--- a/core/java/android/util/Range.java
+++ b/core/java/android/util/Range.java
@@ -19,7 +19,8 @@ package android.util;
import static com.android.internal.util.Preconditions.*;
import android.annotation.Nullable;
-import android.hardware.camera2.utils.HashCodeHelpers;
+
+import java.util.Objects;
/**
* Immutable class for describing the range of two numeric values.
@@ -351,7 +352,7 @@ public final class Range<T extends Comparable<? super T>> {
*/
@Override
public int hashCode() {
- return HashCodeHelpers.hashCodeGeneric(mLower, mUpper);
+ return Objects.hash(mLower, mUpper);
}
private final T mLower;
diff --git a/core/java/android/util/SparseArray.java b/core/java/android/util/SparseArray.java
index cd03d83b818c..c18cac3a4fbc 100644
--- a/core/java/android/util/SparseArray.java
+++ b/core/java/android/util/SparseArray.java
@@ -22,8 +22,6 @@ import android.compat.annotation.UnsupportedAppUsage;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;
-import libcore.util.EmptyArray;
-
import java.util.Objects;
/**
diff --git a/core/java/android/util/SparseBooleanArray.java b/core/java/android/util/SparseBooleanArray.java
index 12a99004daed..795f4c99f356 100644
--- a/core/java/android/util/SparseBooleanArray.java
+++ b/core/java/android/util/SparseBooleanArray.java
@@ -22,8 +22,6 @@ import android.compat.annotation.UnsupportedAppUsage;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;
-import libcore.util.EmptyArray;
-
/**
* SparseBooleanArrays map integers to booleans.
* Unlike a normal array of booleans
diff --git a/core/java/android/util/SparseIntArray.java b/core/java/android/util/SparseIntArray.java
index 0e98c285c227..24d04be1b46d 100644
--- a/core/java/android/util/SparseIntArray.java
+++ b/core/java/android/util/SparseIntArray.java
@@ -21,8 +21,6 @@ import android.compat.annotation.UnsupportedAppUsage;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;
-import libcore.util.EmptyArray;
-
import java.util.Arrays;
/**
diff --git a/core/java/android/util/SparseLongArray.java b/core/java/android/util/SparseLongArray.java
index e86b6472dc39..4b257e62bc75 100644
--- a/core/java/android/util/SparseLongArray.java
+++ b/core/java/android/util/SparseLongArray.java
@@ -19,8 +19,6 @@ package android.util;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.GrowingArrayUtils;
-import libcore.util.EmptyArray;
-
/**
* SparseLongArrays map integers to longs. Unlike a normal array of longs,
* there can be gaps in the indices. It is intended to be more memory efficient
diff --git a/core/java/com/android/internal/util/ArrayUtils.java b/core/java/com/android/internal/util/ArrayUtils.java
index b64771b88e25..686e1fc2c34e 100644
--- a/core/java/com/android/internal/util/ArrayUtils.java
+++ b/core/java/com/android/internal/util/ArrayUtils.java
@@ -21,11 +21,10 @@ import android.annotation.Nullable;
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Build;
import android.util.ArraySet;
+import android.util.EmptyArray;
import dalvik.system.VMRuntime;
-import libcore.util.EmptyArray;
-
import java.io.File;
import java.lang.reflect.Array;
import java.util.ArrayList;
@@ -84,6 +83,38 @@ public class ArrayUtils {
return (T[])VMRuntime.getRuntime().newUnpaddedArray(clazz, minLen);
}
+ public static byte[] newUnpaddedByteArray$ravenwood(int minLen) {
+ return new byte[minLen];
+ }
+
+ public static char[] newUnpaddedCharArray$ravenwood(int minLen) {
+ return new char[minLen];
+ }
+
+ public static int[] newUnpaddedIntArray$ravenwood(int minLen) {
+ return new int[minLen];
+ }
+
+ public static boolean[] newUnpaddedBooleanArray$ravenwood(int minLen) {
+ return new boolean[minLen];
+ }
+
+ public static long[] newUnpaddedLongArray$ravenwood(int minLen) {
+ return new long[minLen];
+ }
+
+ public static float[] newUnpaddedFloatArray$ravenwood(int minLen) {
+ return new float[minLen];
+ }
+
+ public static Object[] newUnpaddedObjectArray$ravenwood(int minLen) {
+ return new Object[minLen];
+ }
+
+ public static <T> T[] newUnpaddedArray$ravenwood(Class<T> clazz, int minLen) {
+ return (T[]) Array.newInstance(clazz, minLen);
+ }
+
/**
* Checks if the beginnings of two byte arrays are equal.
*
diff --git a/framework-minus-apex-ravenwood-policies.txt b/framework-minus-apex-ravenwood-policies.txt
index c3ca1220387c..8e76fd22f99a 100644
--- a/framework-minus-apex-ravenwood-policies.txt
+++ b/framework-minus-apex-ravenwood-policies.txt
@@ -1,11 +1,91 @@
# Ravenwood "policy" file for framework-minus-apex.
+# Collections
class android.util.ArrayMap stubclass
+class android.util.ArraySet stubclass
+class android.util.LongSparseArray stubclass
+class android.util.SparseArrayMap stubclass
+class android.util.SparseArray stubclass
+class android.util.SparseBooleanArray stubclass
+class android.util.SparseIntArray stubclass
+class android.util.SparseLongArray stubclass
class android.util.ContainerHelpers stubclass
class android.util.EmptyArray stubclass
class android.util.MapCollections stubclass
+# Logging
class android.util.Log stubclass
class android.util.Log !com.android.hoststubgen.nativesubstitution.Log_host
+class android.util.LogPrinter stubclass
+# String Manipulation
+class android.util.Printer stubclass
+class android.util.PrintStreamPrinter stubclass
+class android.util.PrintWriterPrinter stubclass
+class android.util.StringBuilderPrinter stubclass
+
+# Properties
+class android.util.Property stubclass
+class android.util.FloatProperty stubclass
+class android.util.IntProperty stubclass
+class android.util.NoSuchPropertyException stubclass
+class android.util.ReflectiveProperty stubclass
+
+# Exceptions
+class android.util.AndroidException stubclass
+class android.util.AndroidRuntimeException stubclass
+
+# JSON
+class android.util.JsonReader stubclass
+class android.util.JsonWriter stubclass
+class android.util.MalformedJsonException stubclass
+
+# Base64
+class android.util.Base64 stubclass
+class android.util.Base64DataException stubclass
+class android.util.Base64InputStream stubclass
+class android.util.Base64OutputStream stubclass
+
+# Data Holders
+class android.util.MutableFloat stubclass
+class android.util.MutableShort stubclass
+class android.util.MutableBoolean stubclass
+class android.util.MutableByte stubclass
+class android.util.MutableChar stubclass
+class android.util.MutableDouble stubclass
+class android.util.Pair stubclass
+class android.util.Range stubclass
+class android.util.Rational stubclass
+class android.util.Size stubclass
+class android.util.SizeF stubclass
+
+# Proto
+class android.util.proto.EncodedBuffer stubclass
+class android.util.proto.ProtoInputStream stubclass
+class android.util.proto.ProtoOutputStream stubclass
+class android.util.proto.ProtoParseException stubclass
+class android.util.proto.ProtoStream stubclass
+class android.util.proto.ProtoUtils stubclass
+class android.util.proto.WireTypeMismatchException stubclass
+
+# Misc
+class android.util.Dumpable stubclass
+class android.util.DebugUtils stubclass
+class android.util.UtilConfig stubclass
+class android.util.Patterns stubclass
+
+# Internals
+class com.android.internal.util.ArrayUtils stubclass
+ method newUnpaddedByteArray (I)[B @newUnpaddedByteArray$ravenwood
+ method newUnpaddedCharArray (I)[C @newUnpaddedCharArray$ravenwood
+ method newUnpaddedIntArray (I)[I @newUnpaddedIntArray$ravenwood
+ method newUnpaddedBooleanArray (I)[Z @newUnpaddedBooleanArray$ravenwood
+ method newUnpaddedLongArray (I)[J @newUnpaddedLongArray$ravenwood
+ method newUnpaddedFloatArray (I)[F @newUnpaddedFloatArray$ravenwood
+ method newUnpaddedObjectArray (I)[Ljava/lang/Object; @newUnpaddedObjectArray$ravenwood
+ method newUnpaddedArray (Ljava/lang/Class;I)[Ljava/lang/Object; @newUnpaddedArray$ravenwood
+
+class com.android.internal.util.GrowingArrayUtils stubclass
class com.android.internal.util.LineBreakBufferedWriter stubclass
+class com.android.internal.util.Preconditions stubclass
+class com.android.internal.util.StringPool stubclass