summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hao Ke <haok@google.com> 2021-12-02 15:39:44 +0000
committer Hao Ke <haok@google.com> 2021-12-02 15:43:40 +0000
commitaa4e9dfda8174d604244a0aed408040d1adbf62c (patch)
tree5b9f35f4baa871d31245b10472881aab7813b8a3
parentcc09b29e599b0bf965ec1c75ee4d9cee36c21aa0 (diff)
Deprecate unsafe readParcelableList API.
Deprecate unsafe parcel APIs and point to the safer ones that take the expected type as parameter. Also mentioned the typed ones that take the creator as argument since those are also more performant. Test: Builds Bug: 195622897 Bug: 199275680 Bug: 205985058 Change-Id: I77a1a925d8759fd122936780587e3488705d4c56
-rw-r--r--core/api/current.txt2
-rw-r--r--core/java/android/os/Parcel.java7
2 files changed, 8 insertions, 1 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index 99226159348b..6936ca724c38 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -31513,7 +31513,7 @@ package android.os {
method @Nullable public <T> T[] readParcelableArray(@Nullable ClassLoader, @NonNull Class<T>);
method @Deprecated @Nullable public android.os.Parcelable.Creator<?> readParcelableCreator(@Nullable ClassLoader);
method @Nullable public <T> android.os.Parcelable.Creator<T> readParcelableCreator(@Nullable ClassLoader, @NonNull Class<T>);
- method @NonNull public <T extends android.os.Parcelable> java.util.List<T> readParcelableList(@NonNull java.util.List<T>, @Nullable ClassLoader);
+ method @Deprecated @NonNull public <T extends android.os.Parcelable> java.util.List<T> readParcelableList(@NonNull java.util.List<T>, @Nullable ClassLoader);
method @NonNull public <T> java.util.List<T> readParcelableList(@NonNull java.util.List<T>, @Nullable ClassLoader, @NonNull Class<T>);
method @Nullable public android.os.PersistableBundle readPersistableBundle();
method @Nullable public android.os.PersistableBundle readPersistableBundle(@Nullable ClassLoader);
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index afd0ff747b93..36645155a472 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -3646,7 +3646,14 @@ public final class Parcel {
* list was {@code null}, {@code list} is cleared.
*
* @see #writeParcelableList(List, int)
+ *
+ * @deprecated Use the type-safer version {@link #readParcelableList(List, ClassLoader, Class)}
+ * starting from Android {@link Build.VERSION_CODES#TIRAMISU}. Also consider changing the
+ * format to use {@link #readTypedList(List, Parcelable.Creator)} if possible (eg. if the
+ * items' class is final) since this is also more performant. Note that changing to the
+ * latter also requires changing the writes.
*/
+ @Deprecated
@NonNull
public final <T extends Parcelable> List<T> readParcelableList(@NonNull List<T> list,
@Nullable ClassLoader cl) {