package yuku.kpri.model; import android.os.Parcel; import android.os.Parcelable; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class Song implements Serializable, Parcelable { public static final String TAG = Song.class.getSimpleName(); private static final long serialVersionUID = 3264548831320138544L; public String code; public String title; public String title_original; public List<String> authors_lyric; public List<String> authors_music; public String tune; public String keySignature; public String timeSignature; public List<Lyric> lyrics; public String scriptureReferences; // added in dataFormatVersion 2 public Song() {} @Override public void writeToParcel(Parcel out, int flags) { writeToParcelCompat(Integer.MAX_VALUE, out, flags); } @Override public int describeContents() { return 0; } public static Song createFromParcelCompat(int dataFormatVersion, Parcel in) { Song res = new Song(); res.code = in.readString(); res.title = in.readString(); res.title_original = in.readString(); in.readStringList(res.authors_lyric = new ArrayList<>()); in.readStringList(res.authors_music = new ArrayList<>()); res.tune = in.readString(); res.keySignature = in.readString(); res.timeSignature = in.readString(); in.readList(res.lyrics = new ArrayList<>(), res.getClass().getClassLoader()); if (dataFormatVersion >= 2) { res.scriptureReferences = in.readString(); } return res; } public void writeToParcelCompat(int dataFormatVersion, Parcel out, int flags) { out.writeString(code); out.writeString(title); out.writeString(title_original); out.writeStringList(authors_lyric); out.writeStringList(authors_music); out.writeString(tune); out.writeString(keySignature); out.writeString(timeSignature); out.writeList(lyrics); if (dataFormatVersion >= 2) { out.writeString(scriptureReferences); } } public static final Parcelable.Creator<Song> CREATOR = new Parcelable.Creator<Song>() { @Override public Song createFromParcel(Parcel in) { return Song.createFromParcelCompat(Integer.MAX_VALUE, in); } @Override public Song[] newArray(int size) { return new Song[size]; } }; }