Add safer Intent extra APIs and deprecate old ones

Complementing new safer Bundle APIs introduced in aosp/1988908.

Test: Working on CTS
CTS-Coverage-Bug: 224457848
Bug: 224457848
Change-Id: I1d2b15d1214f2bd2eccade45693365098200ae01
This commit is contained in:
Bernardo Rufino
2022-03-14 09:53:25 +00:00
parent 31f779f949
commit a89fede08c
2 changed files with 90 additions and 4 deletions

View File

@@ -9748,12 +9748,16 @@ package android.content {
method @Nullable public long[] getLongArrayExtra(String);
method public long getLongExtra(String, long);
method @Nullable public String getPackage();
method @Nullable public android.os.Parcelable[] getParcelableArrayExtra(String);
method @Nullable public <T extends android.os.Parcelable> java.util.ArrayList<T> getParcelableArrayListExtra(String);
method @Nullable public <T extends android.os.Parcelable> T getParcelableExtra(String);
method @Deprecated @Nullable public android.os.Parcelable[] getParcelableArrayExtra(String);
method @Nullable public <T> T[] getParcelableArrayExtra(@Nullable String, @NonNull Class<T>);
method @Deprecated @Nullable public <T extends android.os.Parcelable> java.util.ArrayList<T> getParcelableArrayListExtra(String);
method @Nullable public <T> java.util.ArrayList<T> getParcelableArrayListExtra(@Nullable String, @NonNull Class<? extends T>);
method @Deprecated @Nullable public <T extends android.os.Parcelable> T getParcelableExtra(String);
method @Nullable public <T> T getParcelableExtra(@Nullable String, @NonNull Class<T>);
method @Nullable public String getScheme();
method @Nullable public android.content.Intent getSelector();
method @Nullable public java.io.Serializable getSerializableExtra(String);
method @Deprecated @Nullable public java.io.Serializable getSerializableExtra(String);
method @Nullable public <T extends java.io.Serializable> T getSerializableExtra(@Nullable String, @NonNull Class<T>);
method @Nullable public short[] getShortArrayExtra(String);
method public short getShortExtra(String, short);
method @Nullable public android.graphics.Rect getSourceBounds();

View File

@@ -8581,12 +8581,31 @@ public class Intent implements Parcelable, Cloneable {
* @return the value of an item previously added with putExtra(),
* or null if no Parcelable value was found.
*
* @deprecated Use the type-safer {@link #getParcelableExtra(String, Class)} starting from
* Android {@link Build.VERSION_CODES#TIRAMISU}.
*
* @see #putExtra(String, Parcelable)
*/
@Deprecated
public @Nullable <T extends Parcelable> T getParcelableExtra(String name) {
return mExtras == null ? null : mExtras.<T>getParcelable(name);
}
/**
* Retrieve extended data from the intent.
*
* @param name The name of the desired item.
* @param clazz The type of the object expected.
*
* @return the value of an item previously added with putExtra(),
* or null if no Parcelable value was found.
*
* @see #putExtra(String, Parcelable)
*/
public @Nullable <T> T getParcelableExtra(@Nullable String name, @NonNull Class<T> clazz) {
return mExtras == null ? null : mExtras.getParcelable(name, clazz);
}
/**
* Retrieve extended data from the intent.
*
@@ -8595,12 +8614,33 @@ public class Intent implements Parcelable, Cloneable {
* @return the value of an item previously added with putExtra(),
* or null if no Parcelable[] value was found.
*
* @deprecated Use the type-safer {@link #getParcelableArrayExtra(String, Class)} starting from
* Android {@link Build.VERSION_CODES#TIRAMISU}.
*
* @see #putExtra(String, Parcelable[])
*/
@Deprecated
public @Nullable Parcelable[] getParcelableArrayExtra(String name) {
return mExtras == null ? null : mExtras.getParcelableArray(name);
}
/**
* Retrieve extended data from the intent.
*
* @param name The name of the desired item.
* @param clazz The type of the items inside the array. This is only verified when unparceling.
*
* @return the value of an item previously added with putExtra(),
* or null if no Parcelable[] value was found.
*
* @see #putExtra(String, Parcelable[])
*/
@SuppressLint({"ArrayReturn", "NullableCollection"})
public @Nullable <T> T[] getParcelableArrayExtra(@Nullable String name,
@NonNull Class<T> clazz) {
return mExtras == null ? null : mExtras.getParcelableArray(name, clazz);
}
/**
* Retrieve extended data from the intent.
*
@@ -8610,12 +8650,35 @@ public class Intent implements Parcelable, Cloneable {
* putParcelableArrayListExtra(), or null if no
* ArrayList<Parcelable> value was found.
*
* @deprecated Use the type-safer {@link #getParcelableArrayListExtra(String, Class)} starting
* from Android {@link Build.VERSION_CODES#TIRAMISU}.
*
* @see #putParcelableArrayListExtra(String, ArrayList)
*/
@Deprecated
public @Nullable <T extends Parcelable> ArrayList<T> getParcelableArrayListExtra(String name) {
return mExtras == null ? null : mExtras.<T>getParcelableArrayList(name);
}
/**
* Retrieve extended data from the intent.
*
* @param name The name of the desired item.
* @param clazz The type of the items inside the array list. This is only verified when
* unparceling.
*
* @return the value of an item previously added with
* putParcelableArrayListExtra(), or null if no
* ArrayList<Parcelable> value was found.
*
* @see #putParcelableArrayListExtra(String, ArrayList)
*/
@SuppressLint({"ConcreteCollection", "NullableCollection"})
public @Nullable <T> ArrayList<T> getParcelableArrayListExtra(@Nullable String name,
@NonNull Class<? extends T> clazz) {
return mExtras == null ? null : mExtras.<T>getParcelableArrayList(name, clazz);
}
/**
* Retrieve extended data from the intent.
*
@@ -8624,12 +8687,31 @@ public class Intent implements Parcelable, Cloneable {
* @return the value of an item previously added with putExtra(),
* or null if no Serializable value was found.
*
* @deprecated Use the type-safer {@link #getSerializableExtra(String, Class)} starting from
* Android {@link Build.VERSION_CODES#TIRAMISU}.
*
* @see #putExtra(String, Serializable)
*/
public @Nullable Serializable getSerializableExtra(String name) {
return mExtras == null ? null : mExtras.getSerializable(name);
}
/**
* Retrieve extended data from the intent.
*
* @param name The name of the desired item.
* @param clazz The type of the object expected.
*
* @return the value of an item previously added with putExtra(),
* or null if no Serializable value was found.
*
* @see #putExtra(String, Serializable)
*/
public @Nullable <T extends Serializable> T getSerializableExtra(@Nullable String name,
@NonNull Class<T> clazz) {
return mExtras == null ? null : mExtras.getSerializable(name, clazz);
}
/**
* Retrieve extended data from the intent.
*