Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save underwindfall/74bf4223be4d8a9f213d2801df4b86d7 to your computer and use it in GitHub Desktop.
Save underwindfall/74bf4223be4d8a9f213d2801df4b86d7 to your computer and use it in GitHub Desktop.
Using Parceler 1.0.3 with Realm
// Specific class for a RealmList<Bar> field
public class BarListParcelConverter extends RealmListParcelConverter<Bar> {
@Override
public void itemToParcel(Bar input, Parcel parcel) {
parcel.writeParcelable(Parcels.wrap(input), 0);
}
@Override
public Bar itemFromParcel(Parcel parcel) {
return Parcels.unwrap(parcel.readParcelable(Bar.class.getClassLoader()));
}
}
// Abstract class for working with RealmLists
public abstract class RealmListParcelConverter<T extends RealmObject> extends CollectionParcelConverter<T, RealmList<T>> {
@Override
public RealmList<T> createCollection() {
return new RealmList<T>();
}
}
@Parcel(implementations = { BarRealmProxy.class }, value = Parcel.Serialization.BEAN, analyze = { Bar.class })
public class Bar extends RealmObject {
private String baz;
public void setBaz(String baz) {
this.baz = baz;
}
public String getBaz() {
return baz;
}
}
@Parcel(implementations = { FooRealmProxy.class }, value = Parcel.Serialization.BEAN, analyze = { Foo.class })
public class Foo extends RealmObject {
private RealmList<Bar> bars;
@ParcelPropertyConverter(BarListParcelConverter.class)
public void setBars(RealmList<Bar> bars) {
this.bars = bars;
}
public RealmList<Bar> getBars() {
return bars;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment