package org.yaxim.androidclient.service; import org.jivesoftware.smack.packet.Presence; import org.yaxim.androidclient.util.StatusMode; import android.os.Parcel; import android.os.Parcelable; public class ParcelablePresence implements Parcelable { public String bare_jid; public String resource; public String status; public StatusMode status_mode; public ParcelablePresence(String bare_jid, String resource, String status, StatusMode status_mode) { this.bare_jid = bare_jid; this.resource = resource; this.status = status; this.status_mode = status_mode; } public ParcelablePresence(Presence p) { String[] full_jid = p.getFrom().split("/", 2); this.bare_jid = full_jid[0]; if (full_jid.length > 1) this.resource = full_jid[1]; this.status = p.getStatus(); Presence.Mode pm = p.getMode(); this.status_mode = (pm == null) ? StatusMode.available : StatusMode.valueOf(pm.name()); } @Override public int describeContents() { return 0; // Google??? } @Override public void writeToParcel(Parcel p, int flags) { p.writeString(bare_jid); p.writeString(resource); p.writeString(status); p.writeInt(status_mode.ordinal()); } public static Creator<ParcelablePresence> CREATOR = new Creator<ParcelablePresence>() { @Override public ParcelablePresence createFromParcel(Parcel source) { String bare_jid = source.readString(); String resource = source.readString(); String status = source.readString(); StatusMode status_mode = StatusMode.values()[source.readInt()]; return new ParcelablePresence(bare_jid, resource, status, status_mode); } @Override public ParcelablePresence[] newArray(int size) { return new ParcelablePresence[size]; } }; }