package org.getlantern.firetweet.model; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; import org.json.JSONArray; import org.json.JSONException; import org.getlantern.jsonserializer.JSONParcel; import org.getlantern.jsonserializer.JSONParcelable; import org.getlantern.jsonserializer.JSONSerializer; public class ParcelableMediaUpdate implements Parcelable, JSONParcelable { public static final Parcelable.Creator<ParcelableMediaUpdate> CREATOR = new Parcelable.Creator<ParcelableMediaUpdate>() { @Override public ParcelableMediaUpdate createFromParcel(final Parcel in) { return new ParcelableMediaUpdate(in); } @Override public ParcelableMediaUpdate[] newArray(final int size) { return new ParcelableMediaUpdate[size]; } }; public static final JSONParcelable.Creator<ParcelableMediaUpdate> JSON_CREATOR = new JSONParcelable.Creator<ParcelableMediaUpdate>() { @Override public ParcelableMediaUpdate createFromParcel(final JSONParcel in) { return new ParcelableMediaUpdate(in); } @Override public ParcelableMediaUpdate[] newArray(final int size) { return new ParcelableMediaUpdate[size]; } }; public final String uri; public final int type; public ParcelableMediaUpdate(final JSONParcel in) { uri = in.readString("uri"); type = in.readInt("type"); } public ParcelableMediaUpdate(final Parcel in) { uri = in.readString(); type = in.readInt(); } public ParcelableMediaUpdate(final String uri, final int type) { this.uri = uri; this.type = type; } @Override public int describeContents() { return 0; } @Override public String toString() { return "ParcelableMediaUpdate{uri=" + uri + ", type=" + type + "}"; } @Override public void writeToParcel(final JSONParcel out) { out.writeString("uri", uri); out.writeInt("type", type); } @Override public void writeToParcel(final Parcel dest, final int flags) { dest.writeString(uri); dest.writeInt(type); } public static ParcelableMediaUpdate[] fromJSONString(final String json) { if (TextUtils.isEmpty(json)) return null; try { return JSONSerializer.createArray(JSON_CREATOR, new JSONArray(json)); } catch (final JSONException e) { return null; } } }