EntriesDeleted
authorMarseille
Wed, 24 Jun 2009 12:34:41 +0200
changeset 287 d951927691e1
parent 286 8979375c19f0
child 288 b4112a39526c
EntriesDeleted
src/com/beem/project/beem/service/RosterAdapter.java
src/com/beem/project/beem/ui/AddContact.java
src/com/beem/project/beem/ui/ContactDialog.java
src/com/beem/project/beem/ui/ContactList.java
--- a/src/com/beem/project/beem/service/RosterAdapter.java	Tue Jun 23 22:01:30 2009 +0200
+++ b/src/com/beem/project/beem/service/RosterAdapter.java	Wed Jun 24 12:34:41 2009 +0200
@@ -22,7 +22,6 @@
 import android.util.Log;
 
 import com.beem.project.beem.service.aidl.IBeemRosterListener;
-import com.beem.project.beem.ui.ContactList;
 
 /**
  * This class implement a Roster adapter for BEEM.
@@ -145,7 +144,8 @@
      */
     @Override
     public void createGroup(String groupname) throws RemoteException {
-	mAdaptee.createGroup(groupname);
+	if (!mAdaptee.contains(groupname))
+	    mAdaptee.createGroup(groupname);
     }
 
     /**
@@ -224,14 +224,14 @@
 	}
 
 	public void onEntryDeleteFromGroup(String group, String jid) {
-	    Log.i(TAG, "Roster error listener");
+	    Log.i(TAG, "entry delete listener");
 	    final int n = mRemoteRosListeners.beginBroadcast();
 	    for (int i = 0; i < n; i++) {
 		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
 		try {
 		    listener.onEntryDeleteFromGroup(group, jid);
 		} catch (RemoteException e) {
-		    Log.w(TAG, "Roster error listener", e);
+		    Log.w(TAG, "entry delete listener", e);
 		}
 	    }
 	    mRemoteRosListeners.finishBroadcast();
@@ -243,7 +243,7 @@
 	 */
 	@Override
 	public void entriesAdded(Collection<String> addresses) {
-	    Log.i(TAG, "Ajout de l'entry");
+	    Log.i(TAG, "Ajout de l'entry " + addresses.size() + " " + addresses.toArray()[0]);
 	    final int n = mRemoteRosListeners.beginBroadcast();
 
 	    List<String> tab = new ArrayList<String>();
@@ -285,7 +285,7 @@
 	 */
 	@Override
 	public void entriesUpdated(Collection<String> addresses) {
-	    Log.d(TAG, "Update de l'entry");
+	    Log.i(TAG, "Update de l'entry " + addresses.size() + " " + addresses.toArray()[0]);
 	    final int n = mRemoteRosListeners.beginBroadcast();
 
 	    List<String> tab = new ArrayList<String>();
@@ -306,6 +306,7 @@
 	 */
 	@Override
 	public void presenceChanged(Presence presence) {
+	    Log.i(TAG, "presence Changed");
 	    String user = StringUtils.parseBareAddress(presence.getFrom());
 	    Contact c = mContacts.get(StringUtils.parseBareAddress(user));
 	    if (c == null) {
--- a/src/com/beem/project/beem/ui/AddContact.java	Tue Jun 23 22:01:30 2009 +0200
+++ b/src/com/beem/project/beem/ui/AddContact.java	Wed Jun 24 12:34:41 2009 +0200
@@ -45,8 +45,8 @@
     }
 
     @Override
-    protected void onDestroy() {
-	super.onDestroy();
+    protected void onStop() {
+	super.onStop();
 	unbindService(mServConn);
     }
 
--- a/src/com/beem/project/beem/ui/ContactDialog.java	Tue Jun 23 22:01:30 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactDialog.java	Wed Jun 24 12:34:41 2009 +0200
@@ -113,7 +113,6 @@
 		    public void onClick(DialogInterface dialog, int id) {
 			try {
 			    xmppFacade.getRoster().deleteContact(mContact, mGroup);
-			    Log.i("CONTACTDIALOG", "CONTACT DELETED");
 			} catch (RemoteException e) {
 			    e.printStackTrace();
 			}
--- a/src/com/beem/project/beem/ui/ContactList.java	Tue Jun 23 22:01:30 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java	Wed Jun 24 12:34:41 2009 +0200
@@ -175,6 +175,7 @@
 
 	@Override
 	public void onEntriesAdded(List<String> addresses) throws RemoteException {
+	    Log.e("CONTACTLIST", "DEBUG - ONENTRIESADDED()");
 	    for (String str : addresses) {
 		Contact curContact = mRoster.getContact(str);
 		for (String group : curContact.getGroups()) {
@@ -194,7 +195,7 @@
 
 	@Override
 	public void onEntriesDeleted(List<String> addresses) throws RemoteException {
-	    Log.i("CONTACTLIST", "EntreiesDeleted");
+	    Log.e("CONTACTLIST", "DEBUG - ONENTRIESDELETED()");
 	    for (List<Contact> cList : groupMap.values()) {
 		for (Contact curContact : cList) {
 		    for (String addr : addresses) {
@@ -202,6 +203,10 @@
 			    cList.remove(curContact);
 			    if (cList.isEmpty()) {
 				groupMap.values().remove(cList);
+				if (groupMap.size() == 0) {
+				    groupMap.clear();
+				    groupName.clear();
+				}
 			    }
 			}
 		    }
@@ -216,7 +221,7 @@
 	 */
 	@Override
 	public void onEntriesUpdated(List<String> addresses) throws RemoteException {
-	    Log.e("CONTACTLIST", "ENTRIESUPDATED");
+	    Log.e("CONTACTLIST", "DEBUG - ONENTRIESUPDATED()");
 	    for (String str : addresses) {
 		Contact curContact = mRoster.getContact(str);
 		for (String group : curContact.getGroups()) {
@@ -242,6 +247,7 @@
 
 	@Override
 	public void onPresenceChanged(PresenceAdapter presence) throws RemoteException {
+	    Log.e("CONTACTLIST", "DEBUG - ONPRESENCECHANGED()");
 	    for (Contact curContact : mListContact) {
 		if (curContact.getJID().equals(StringUtils.parseBareAddress(presence.getFrom()))) {
 		    curContact.setStatus(mRoster.getPresence(StringUtils.parseBareAddress(presence.getFrom())));
@@ -260,13 +266,24 @@
 
 	@Override
 	public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException {
+	    Log.e("CONTACTLIST", "DEBUG - ONENTRYDELETEFROMGROUP()");
 	    for (Contact contact : mListContact) {
-		if (jid.equals(contact.getJID())) {
+		if (jid.equals(contact.getJID())
+		    && (contact.getGroups().contains(group) || contact.getGroups().size() == 0)) {
 		    groupMap.get(group).remove(contact);
+		    contact.delGroup(group);
 		    if (groupMap.get(group).size() == 0) {
 			groupMap.remove(group);
 			groupName.remove(group);
 		    }
+		    if (contact.getGroups().size() == 0) {
+			if (!groupMap.containsKey(DEFAULT_GROUP)) {
+			    groupMap.put(DEFAULT_GROUP, new ArrayList<Contact>());
+			    groupName.add(DEFAULT_GROUP);
+			}
+			groupMap.get(DEFAULT_GROUP).add(contact);
+		    }
+
 		}
 	    }
 	    mHandler.post(new RunnableChange());
@@ -527,12 +544,12 @@
 
 	@Override
 	public void onServiceDisconnected(ComponentName name) {
-	    xmppFacade = null;
 	    try {
 		mRoster.removeRosterListener(mBeemRosterListener);
 	    } catch (RemoteException e) {
 		e.printStackTrace();
 	    }
+	    xmppFacade = null;
 	    mRoster = null;
 	}
     }