Skip to content
This repository was archived by the owner on Feb 26, 2023. It is now read-only.
This repository was archived by the owner on Feb 26, 2023. It is now read-only.

Object which implements Serializable and Parcelable in @Extra #561

@yDelouis

Description

@yDelouis

Hi,

I have an error Ambiguous method call in a generated Activity with a field annotated @Extra which implements both Serializable and Parcelable.
Indeed, the IntentBuilder_ call the method Intent.putExtra which accepts both (String, Serializable) and (String, Parcelable).
Casting the object to Parcelable is sufficient.

My classes :

public class MyBean implements Serializable, Parcelable {
}
@EActivity
public class MyActivity extends Activity {
    @Extra
    protected MyBean myBean;
}

The generated code is :

public final class MyActivity_ extends MyActivity {
    ...
    public static class IntentBuilder_ {
        ...
        public MyActivity_.IntentBuilder_ myBean(MyBean myBean) {
            intent_.putExtra("myBean", myBean);
            return this;
        }
    }
}

And it should be :

public final class MyActivity_ extends MyActivity {
    ...
    public static class IntentBuilder_ {
        ...
        public MyActivity_.IntentBuilder_ myBean(MyBean myBean) {
            intent_.putExtras("myBean", (Parcelable) myBean);
            return this;
        }
    }
}

I will implement this and submit a PR soon.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions