src/com/beem/project/beem/service/Contact.java
changeset 69 cc06de2dfff0
parent 65 fcafa1e28942
child 77 0f474a0c4e93
child 80 29f0d6a23321
--- a/src/com/beem/project/beem/service/Contact.java	Sat Apr 04 19:02:11 2009 +0200
+++ b/src/com/beem/project/beem/service/Contact.java	Sat Apr 04 20:03:43 2009 +0200
@@ -3,6 +3,9 @@
  */
 package com.beem.project.beem.service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.jivesoftware.smack.RosterEntry;
 import org.jivesoftware.smack.packet.Presence;
 import org.jivesoftware.smack.packet.Presence.Mode;
@@ -17,179 +20,200 @@
  */
 public class Contact implements Parcelable {
 
-	public static final int CONTACT_STATUS_DISCONNECT = 100;
-	public static final int CONTACT_STATUS_UNAVAILABLE = 200;
-	public static final int CONTACT_STATUS_AWAY = 300;
-	public static final int CONTACT_STATUS_BUSY = 400;
-	public static final int CONTACT_STATUS_AVAILABLE = 500;
-	public static final int CONTACT_STATUS_AVAILABLE_FOR_CHAT = 600;
-
-
-	/**
-	 * Parcelable.Creator needs by Android.
-	 */
-	public static final Parcelable.Creator<Contact> CREATOR = new Parcelable.Creator<Contact>() {
-
-		@Override
-		public Contact createFromParcel(Parcel source) {
-			return new Contact(source);
-		}
-
-		@Override
-		public Contact[] newArray(int size) {
-			return new Contact[size];
-		}
-	};
-	private static final String TAG = "Contact";
-
-	private String mJID;
-	private int mID;
-	private int mStatus;
-
-	/**
-	 * @return the mID
-	 */
-	public int getID() {
-		return mID;
-	}
-
-	/**
-	 * @param mid the mID to set
-	 */
-	public void setID(int mid) {
-		mID = mid;
-	}
+    public static final int CONTACT_STATUS_DISCONNECT = 100;
+    public static final int CONTACT_STATUS_UNAVAILABLE = 200;
+    public static final int CONTACT_STATUS_AWAY = 300;
+    public static final int CONTACT_STATUS_BUSY = 400;
+    public static final int CONTACT_STATUS_AVAILABLE = 500;
+    public static final int CONTACT_STATUS_AVAILABLE_FOR_CHAT = 600;
+    private static final String TAG = "Contact";
 
-	/**
-	 * @return the mStatus
-	 */
-	public int getStatus() {
-		return mStatus;
-	}
-
-	/**
-	 * @param status the mStatus to set
-	 */
-	public void setStatus(int status) {
-		mStatus = status;
-	}
-
-	/**
-	 * @return the mMsgState
-	 */
-	public String getMMsgState() {
-		return mMsgState;
-	}
+    private int mID;
+    private int mStatus;
+    private String mJID;
+    private String mMsgState;
+    private List<String> mRes;
 
-	/**
-	 * @param msgState the mMsgState to set
-	 */
-	public void setMMsgState(String msgState) {
-		mMsgState = msgState;
-	}
-
-	private String mMsgState;
+    /**
+     * Parcelable.Creator needs by Android.
+     */
+    public static final Parcelable.Creator<Contact> CREATOR = new Parcelable.Creator<Contact>() {
 
-	/**
-	 * Constructor.
-	 */
-	public Contact() {
-		// TODO Auto-generated constructor stub
-	}
-
-	/**
-	 * Constructor.
-	 * @param jid JID of the contact
-	 */
-	public Contact(final String jid) {
-		mJID = jid;
+	@Override
+	public Contact createFromParcel(Parcel source) {
+	    return new Contact(source);
 	}
 
-	public Contact(RosterEntry entry, Presence presence) {
-		mJID = entry.getUser();
-		Log.w(TAG, "Contact Name: " + entry.getUser());
-		if (presence.getType().equals(Presence.Type.unavailable)) {
-			mStatus = Contact.CONTACT_STATUS_DISCONNECT;
-			Log.w(TAG, "Error while creating Contact");
-		} else {
-			setStatus(presence.getMode());
-		}
+	@Override
+	public Contact[] newArray(int size) {
+	    return new Contact[size];
 	}
+    };
 
-	/**
-	 * @param status the XMPP presence mode
-	 */
-	public void setStatus(Mode mode) {	
-		switch (mode) {
+    /**
+     * Construct a contact from a parcel.
+     * @param in parcel to use for construction
+     */
+    private Contact(final Parcel in) {
+	mID = in.readInt();
+	mStatus = in.readInt();
+	mJID = in.readString();
+	mMsgState = in.readString();
+	mRes = new ArrayList<String>();
+	in.readStringList(mRes); 
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+	dest.writeInt(mID);
+	dest.writeInt(mStatus);
+	dest.writeString(mJID);
+	dest.writeString(mMsgState);
+	dest.writeStringList(getMRes());
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int describeContents() {
+	// TODO Auto-generated method stub
+	return 0;
+    }
+
+    /**
+     * Constructor.
+     */
+    public Contact() {
+	// TODO Auto-generated constructor stub
+    }
+
+    /**
+     * Constructor.
+     * @param jid JID of the contact
+     */
+    public Contact(final String jid) {
+	mJID = jid;
+	mStatus = Contact.CONTACT_STATUS_DISCONNECT;
+	mRes = new ArrayList<String>();
+	mRes.add("none");
+    }
+
+    /**
+     * @return the mID
+     */
+    public int getID() {
+	return mID;
+    }
+
+    /**
+     * @param mid the mID to set
+     */
+    public void setID(int mid) {
+	mID = mid;
+    }
+
+    /**
+     * @return the mStatus
+     */
+    public int getStatus() {
+	return mStatus;
+    }
+
+    /**
+     * @param status the mStatus to set
+     */
+    public void setStatus(int status) {
+	mStatus = status;
+    }
+
+    /**
+     * @param presence the presence containing status
+     */
+    public void setStatus(Presence presence) {
+	if (presence.getType().equals(Presence.Type.unavailable)) {
+	    Log.d(TAG, "Presence pas dispo");
+	    mStatus = Contact.CONTACT_STATUS_DISCONNECT;
+	} else {
+	    Log.d(TAG,"Presence OK");
+	    Mode mode = presence.getMode();
+	    switch (mode) {
 		case available:
-			mStatus = Contact.CONTACT_STATUS_AVAILABLE;
-			break;
+		    mStatus = Contact.CONTACT_STATUS_AVAILABLE;
+		    break;
 		case away:
-			mStatus = Contact.CONTACT_STATUS_AWAY;
-			break;
+		    mStatus = Contact.CONTACT_STATUS_AWAY;
+		    break;
 		case chat:
-			mStatus = Contact.CONTACT_STATUS_AVAILABLE_FOR_CHAT;
-			break;
+		    mStatus = Contact.CONTACT_STATUS_AVAILABLE_FOR_CHAT;
+		    break;
 		case dnd:
-			mStatus = Contact.CONTACT_STATUS_BUSY;
-			break;
+		    mStatus = Contact.CONTACT_STATUS_BUSY;
+		    break;
 		case xa:
-			mStatus = Contact.CONTACT_STATUS_UNAVAILABLE;
-			break;
+		    mStatus = Contact.CONTACT_STATUS_UNAVAILABLE;
+		    break;
 		default:
-			Log.e("RosterAdapter", "Status mode non gere");
+		    Log.e("RosterAdapter", "Status mode non gere");
 		mStatus = Contact.CONTACT_STATUS_DISCONNECT;
 		break;
-		}
-	}
-
-	/**
-	 * Construct a contact from a parcel.
-	 * @param in parcel to use for construction
-	 */
-	private Contact(final Parcel in) {
-		mID = in.readInt();
-		mStatus = in.readInt();
-		mJID = in.readString();
-		mMsgState = in.readString();
+	    }
 	}
+    }
 
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public void writeToParcel(Parcel dest, int flags) {
-		// TODO Auto-generated method stub
-		dest.writeInt(mID);
-		dest.writeInt(mStatus);
-		dest.writeString(mJID);
-		dest.writeString(mMsgState);
-	}
+    /**
+     * @return the mMsgState
+     */
+    public String getMMsgState() {
+	return mMsgState;
+    }
+
+    /**
+     * @param msgState the mMsgState to set
+     */
+    public void setMMsgState(String msgState) {
+	mMsgState = msgState;
+    }
+
+    /**
+     * Get the Jabber ID of the contact.
+     * @return the Jabber ID
+     */
+    public String getJID() {
+	return mJID;
+    }
 
-	/**
-	 * Get the Jabber ID of the contact.
-	 * @return the Jabber ID
-	 */
-	public String getJID() {
-		return mJID;
-	}
+    /**
+     * Set the Jabber ID of the contact.
+     * @param mjid	the jabber ID to set
+     */
+    public void setJID(String mjid) {
+	mJID = mjid;
+    }
+
+    public void addRes(String res) {
+	if (!mRes.contains(res))
+	    mRes.add(res);
+    }
 
-	/**
-	 * Set the Jabber ID of the contact.
-	 * @param mjid	the jabber ID to set
-	 */
-	public void setJID(String mjid) {
-		mJID = mjid;
-	}
+    public void delRes(String res) {
+	mRes.remove(res);
+    }
 
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public int describeContents() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
+    /**
+     * @param mRes the mRes to set
+     */
+    public void setMRes(List<String> mRes) {
+	this.mRes = mRes;
+    }
 
-
+    /**
+     * @return the mRes
+     */
+    public List<String> getMRes() {
+	return mRes;
+    }
 }