Skip to content
Snippets Groups Projects
Commit d02b24ab authored by Isaac Katzenelson's avatar Isaac Katzenelson
Browse files

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
parent 0e44c457
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment