Gestion de l'ajout et suppression d'un contact d'un client exterieur.
authorVincent Veronis <veroni_v@epitech.net>
Sat, 03 Oct 2009 12:39:32 +0200
changeset 441 de9f5da0a294
parent 440 1b04c885f87d
child 442 8a6ed83557c8
Gestion de l'ajout et suppression d'un contact d'un client exterieur. Petit bug a corriger.
src/com/beem/project/beem/ui/ContactList.java
--- a/src/com/beem/project/beem/ui/ContactList.java	Sat Oct 03 13:32:21 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java	Sat Oct 03 12:39:32 2009 +0200
@@ -352,8 +352,22 @@
 	@Override
 	public void onEntriesAdded(List<String> addresses) throws RemoteException {
 	    for (String newName : addresses) {
-		Contact c = new Contact(newName);
-		mListContact.add(c);
+		Contact c = mRoster.getContact(newName);
+		mContactOnGroup.get(getString(R.string.contact_list_all_contact)).add(c);
+		if (c.getGroups().size() == 0)
+		    mContactOnGroup.get(getString(R.string.contact_list_no_group)).add(c);
+		else {
+		    for (String group : c.getGroups()) {
+			if (!mListGroup.contains(group)) {
+			    mListGroup.add(mListGroup.size() - 1, group);
+			    List<Contact> tmplist = new ArrayList<Contact>();
+			    mContactOnGroup.put(group, tmplist);
+			}
+			mContactOnGroup.get(group).add(c);
+			if (group.equals(mCurGroup))
+			    mListContact.add(c);
+		    }
+		}
 	    }
 	    mHandler.post(new RunnableChange());
 	}
@@ -367,6 +381,13 @@
 		for (Contact c : mListContact) {
 		    if (c.getJID().equals(cToDelete)) {
 			mListContact.remove(c);
+			for (String group : mListGroup) {
+			    mContactOnGroup.get(group).remove(c);
+			    if (mContactOnGroup.get(group).size() == 0) {
+				mListGroup.remove(group);
+				mListContact = mContactOnGroup.get(getString(R.string.contact_list_all_contact));
+			    }
+			}
 			break;
 		    }
 		}
@@ -529,7 +550,7 @@
 			break;
 		    default:
 			imageDrawable = getResources().getDrawable(R.drawable.error);
-		    break;
+			break;
 		}
 		imgV.setImageDrawable(imageDrawable);
 
@@ -553,12 +574,12 @@
 		 * getResources().getDrawable(R.drawable.avatar); imgV.setImageDrawable(imageDrawable); }
 		 */
 
-		if (false){
+		if (false) {
 		    imgV = (ImageView) view.findViewById(R.id.contactlistavatar);
 
 		    byte[] rawImg;
 		    try {
-			//TODO: le faire en asynchrone, car la ca bloque tout.
+			// TODO: le faire en asynchrone, car la ca bloque tout.
 			rawImg = mXmppFacade.getVcardAvater(curContact.getJID());
 			if (rawImg != null)
 			    imgV.setImageBitmap(BitmapFactory.decodeByteArray(rawImg, 0, rawImg.length));