Gestion de l'ajout et suppression d'un contact d'un client exterieur.
Petit bug a corriger.
--- 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));