Migrate unsafe parcel APIs in framework-minus-apex
Migrate the following unsafe parcel APIs in framework-minus-apex:
* Parcel.readSerializable()
* Parcel.readArrayList()
* Parcel.readList()
* Parcel.readParcelable()
* Parcel.readParcelableList()
* Parcel.readSparseArray()
This CL was generated by applying lint fixes that infer the expected
type from the caller code and provide that as the type parameter
(ag/16365240).
A few observations:
* In some classes we couldn't migrate because the class also belonged to
another build module whose min SDK wasn't current (as is the case for
framework-minus-apex), hence I suppressed the lint check
(since I'll eventually submit the lint check to the tree).
* In some cases, I needed to do the cast in
https://stackoverflow.com/a/1080525/5765705 to make the compiler happy
since there isn't another way of providing a class of type
Class<MyClassWithGenerics<T>>.
* In the readSerializable() case, the new API also requires the class
loader, that was inferred to by InferredClass.class.getClassLoader().
* Note that automatic formatting and import rely on running hooked up
to the IDE, which wasn't the case here.
Bug: 195622897
Test: TH passes
Change-Id: I11a27b9bdab7959ee86e90aa1e1cbebd7aaf883c
diff --git a/Vcn/framework-b/src/android/net/vcn/VcnConfig.java b/Vcn/framework-b/src/android/net/vcn/VcnConfig.java
index caab152..fd3fe37 100644
--- a/Vcn/framework-b/src/android/net/vcn/VcnConfig.java
+++ b/Vcn/framework-b/src/android/net/vcn/VcnConfig.java
@@ -173,7 +173,7 @@
new Parcelable.Creator<VcnConfig>() {
@NonNull
public VcnConfig createFromParcel(Parcel in) {
- return new VcnConfig((PersistableBundle) in.readParcelable(null));
+ return new VcnConfig((PersistableBundle) in.readParcelable(null, android.os.PersistableBundle.class));
}
@NonNull
diff --git a/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.java b/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.java
index 14e70cf..fca084a 100644
--- a/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.java
+++ b/Vcn/framework-b/src/android/net/vcn/VcnNetworkPolicyResult.java
@@ -114,7 +114,7 @@
public static final @NonNull Creator<VcnNetworkPolicyResult> CREATOR =
new Creator<VcnNetworkPolicyResult>() {
public VcnNetworkPolicyResult createFromParcel(Parcel in) {
- return new VcnNetworkPolicyResult(in.readBoolean(), in.readParcelable(null));
+ return new VcnNetworkPolicyResult(in.readBoolean(), in.readParcelable(null, android.net.NetworkCapabilities.class));
}
public VcnNetworkPolicyResult[] newArray(int size) {
diff --git a/Vcn/framework-b/src/android/net/vcn/VcnTransportInfo.java b/Vcn/framework-b/src/android/net/vcn/VcnTransportInfo.java
index 25a2574..5c47b28 100644
--- a/Vcn/framework-b/src/android/net/vcn/VcnTransportInfo.java
+++ b/Vcn/framework-b/src/android/net/vcn/VcnTransportInfo.java
@@ -146,7 +146,7 @@
new Creator<VcnTransportInfo>() {
public VcnTransportInfo createFromParcel(Parcel in) {
final int subId = in.readInt();
- final WifiInfo wifiInfo = in.readParcelable(null);
+ final WifiInfo wifiInfo = in.readParcelable(null, android.net.wifi.WifiInfo.class);
// If all fields are their null values, return null TransportInfo to avoid
// leaking information about this being a VCN Network (instead of macro
diff --git a/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.java b/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.java
index b0d4f3b..2b5305d 100644
--- a/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.java
+++ b/Vcn/framework-b/src/android/net/vcn/VcnUnderlyingNetworkPolicy.java
@@ -106,7 +106,7 @@
public static final @NonNull Creator<VcnUnderlyingNetworkPolicy> CREATOR =
new Creator<VcnUnderlyingNetworkPolicy>() {
public VcnUnderlyingNetworkPolicy createFromParcel(Parcel in) {
- return new VcnUnderlyingNetworkPolicy(in.readParcelable(null));
+ return new VcnUnderlyingNetworkPolicy(in.readParcelable(null, android.net.vcn.VcnNetworkPolicyResult.class));
}
public VcnUnderlyingNetworkPolicy[] newArray(int size) {