Merge "Handle null fields when using parcels." into udc-dev am: 54d0cacacd am: a561c32098 am: 89de9517fb am: b5b1f8ad38
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23091188
Change-Id: I7270a3c3226d0d9e9f7ce8cb7a1835cb19203093
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java b/wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java
index c390e42..33f4d46 100644
--- a/wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java
+++ b/wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java
@@ -275,7 +275,12 @@
dest.writeInt(mNetworkSource);
dest.writeString(mSsid);
dest.writeArraySet(mSecurityTypes);
- mNetworkProviderInfo.writeToParcel(dest, flags);
+ if (mNetworkProviderInfo != null) {
+ dest.writeBoolean(true);
+ mNetworkProviderInfo.writeToParcel(dest, flags);
+ } else {
+ dest.writeBoolean(false);
+ }
dest.writeBundle(mExtras);
}
@@ -286,9 +291,15 @@
*/
@NonNull
public static KnownNetwork readFromParcel(@NonNull Parcel in) {
- return new KnownNetwork(in.readInt(), in.readString(),
- (ArraySet<Integer>) in.readArraySet(null),
- NetworkProviderInfo.readFromParcel(in), in.readBundle());
+ int networkSource = in.readInt();
+ String mSsid = in.readString();
+ ArraySet<Integer> securityTypes = (ArraySet<Integer>) in.readArraySet(null);
+ if (in.readBoolean()) {
+ return new KnownNetwork(networkSource, mSsid, securityTypes,
+ NetworkProviderInfo.readFromParcel(in), in.readBundle());
+ }
+ return new KnownNetwork(networkSource, mSsid, securityTypes, null,
+ in.readBundle());
}
@NonNull
diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java b/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java
index af3afa8..5ad3ede 100644
--- a/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java
+++ b/wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java
@@ -161,7 +161,7 @@
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
- mInstantTetherSettingsPendingIntent.writeToParcel(dest, 0);
+ PendingIntent.writePendingIntentOrNullToParcel(mInstantTetherSettingsPendingIntent, dest);
dest.writeBoolean(mInstantTetherEnabled);
dest.writeBundle(mExtras);
}
@@ -173,7 +173,7 @@
*/
@NonNull
public static SharedConnectivitySettingsState readFromParcel(@NonNull Parcel in) {
- PendingIntent pendingIntent = PendingIntent.CREATOR.createFromParcel(in);
+ PendingIntent pendingIntent = PendingIntent.readPendingIntentOrNullFromParcel(in);
boolean instantTetherEnabled = in.readBoolean();
Bundle extras = in.readBundle();
return new SharedConnectivitySettingsState(instantTetherEnabled, pendingIntent, extras);