Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -275,7 +275,12 @@ public final class KnownNetwork implements Parcelable {
        dest.writeInt(mNetworkSource);
        dest.writeString(mSsid);
        dest.writeArraySet(mSecurityTypes);
        if (mNetworkProviderInfo != null) {
            dest.writeBoolean(true);
            mNetworkProviderInfo.writeToParcel(dest, flags);
        } else {
            dest.writeBoolean(false);
        }
        dest.writeBundle(mExtras);
    }

@@ -286,10 +291,16 @@ 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),
        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
    public static final Creator<KnownNetwork> CREATOR = new Creator<>() {
+2 −2
Original line number Diff line number Diff line
@@ -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);