Skip to content

Instantly share code, notes, and snippets.

@cmelchior
Last active August 29, 2019 09:46
  • Star 15 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save cmelchior/72c35fcb55cec33a71e1 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;
}
}
@Shajeel-Afzal
Copy link

Hi, Thank you for the gist. Can you please tell me why RealmProxy class is not being created in my case?

@Shajeel-Afzal
Copy link

Also the imports for BarListParcelConverter.java are:

import android.os.Parcel;
import org.parceler.Parcels;

Right?

@patloew
Copy link

patloew commented Apr 6, 2016

I wrote a generic adapter which works for all RealmLists: RealmListParcelConverter.java

@QifanViseo
Copy link

@patloew Hello i have tried your things which show an error : read/write generator for type io.realm.RealmList do you have any ideas of this? Thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment