summaryrefslogtreecommitdiff
path: root/wifi/java/src
diff options
context:
space:
mode:
author Isaac Katzenelson <isaackatz@google.com> 2023-05-08 22:28:03 +0000
committer Isaac Katzenelson <isaackatz@google.com> 2023-05-09 05:02:14 +0000
commitd02b24ab87988954d16ce173da798d36f4690bc7 (patch)
treea5b3895d7635f418f54ce8310e03e2be64cfe21a /wifi/java/src
parent0e44c4575d404e222eee2f7b73f6b5d004633e2d (diff)
Handle null fields when using parcels.
For fields that can be null, make sure they are stored correctly and read correctly when they are used in a parcel. Bug: 281487373 Test: atest SharedConnectivitySettingsStateTest KnownNetworkTest Change-Id: I2f9cdb638dcb1f98113f39b60a96b0d1e8b22d8c
Diffstat (limited to 'wifi/java/src')
-rw-r--r--wifi/java/src/android/net/wifi/sharedconnectivity/app/KnownNetwork.java19
-rw-r--r--wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java4
2 files changed, 17 insertions, 6 deletions
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 c390e42f348e..33f4d465abab 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 @@ public final class KnownNetwork implements Parcelable {
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 @@ public final class KnownNetwork implements Parcelable {
*/
@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 af3afa88f5e0..5ad3ede8498d 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 @@ public final class SharedConnectivitySettingsState implements Parcelable {
@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 @@ public final class SharedConnectivitySettingsState implements Parcelable {
*/
@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);