There are a bug when trying to delete a contact who is alone in several
authornikita@nikita-laptop
Wed, 23 Dec 2009 02:04:42 +0100
changeset 603 6425dcd8ebb6
parent 602 1ca0e63b1886
child 604 61f6095183a4
child 612 e730f5770f8c
There are a bug when trying to delete a contact who is alone in several groups in gtalk.
src/com/beem/project/beem/service/RosterAdapter.java
src/com/beem/project/beem/service/aidl/IBeemRosterListener.aidl
src/com/beem/project/beem/ui/Chat.java
src/com/beem/project/beem/ui/ContactList.java
--- a/src/com/beem/project/beem/service/RosterAdapter.java	Tue Dec 22 17:54:23 2009 +0100
+++ b/src/com/beem/project/beem/service/RosterAdapter.java	Wed Dec 23 02:04:42 2009 +0100
@@ -302,26 +302,6 @@
 	}
 
 	/**
-	 * Event which is fired when an entry is deleted for a group.
-	 * @param group the group the entry was.
-	 * @param jid the jid of the entry which is deleted.
-	 */
-	public void onEntryDeleteFromGroup(final String group, final String jid) {
-	    // 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, "entry delete listener", e);
-		}
-	    }
-	    mRemoteRosListeners.finishBroadcast();
-
-	}
-
-	/**
 	 * {@inheritDoc}
 	 */
 	@Override
@@ -348,7 +328,7 @@
 	 */
 	@Override
 	public void entriesDeleted(Collection<String> addresses) {
-	    // Log.i(TAG, "Suppression de l'entry");
+	    Log.i(TAG, "Suppression de l'entry");
 	    final int n = mRemoteRosListeners.beginBroadcast();
 
 	    List<String> tab = new ArrayList<String>();
@@ -369,8 +349,8 @@
 	 */
 	@Override
 	public void entriesUpdated(Collection<String> addresses) {
-	    // Log.i(TAG, "Update de l'entry " + addresses.size() + " " +
-	    // addresses.toArray()[0]);
+	    Log.i(TAG, "Update de l'entry " + addresses.size() + " " +
+	    addresses.toArray()[0]);
 	    final int n = mRemoteRosListeners.beginBroadcast();
 
 	    List<String> tab = new ArrayList<String>();
--- a/src/com/beem/project/beem/service/aidl/IBeemRosterListener.aidl	Tue Dec 22 17:54:23 2009 +0100
+++ b/src/com/beem/project/beem/service/aidl/IBeemRosterListener.aidl	Wed Dec 23 02:04:42 2009 +0100
@@ -50,5 +50,4 @@
     void onEntriesUpdated(in List<String> addresses);
     void onEntriesDeleted(in List<String> addresses);
     void onPresenceChanged(in PresenceAdapter presence);
-    void onEntryDeleteFromGroup(in String group, in String jid);
 }
--- a/src/com/beem/project/beem/ui/Chat.java	Tue Dec 22 17:54:23 2009 +0100
+++ b/src/com/beem/project/beem/ui/Chat.java	Wed Dec 23 02:04:42 2009 +0100
@@ -461,13 +461,6 @@
 	 * {@inheritDoc}.
 	 */
 	@Override
-	public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException {
-	}
-
-	/**
-	 * {@inheritDoc}.
-	 */
-	@Override
 	public void onPresenceChanged(final PresenceAdapter presence) throws RemoteException {
 	    if (mContact.getJID().equals(StringUtils.parseBareAddress(presence.getFrom()))) {
 		mHandler.post(new Runnable() {
--- a/src/com/beem/project/beem/ui/ContactList.java	Tue Dec 22 17:54:23 2009 +0100
+++ b/src/com/beem/project/beem/ui/ContactList.java	Wed Dec 23 02:04:42 2009 +0100
@@ -519,6 +519,7 @@
 			for (String group : mListGroup) {
 			    mContactOnGroup.get(group).remove(c);
 			    if (mContactOnGroup.get(group).size() == 0) {
+				mContactOnGroup.remove(group);
 				mListGroup.remove(group);
 				mListContact = mContactOnGroup.get(getString(R.string.contact_list_all_contact));
 			    }
@@ -546,29 +547,6 @@
 	    mHandler.post(new RunnableChange());
 	}
 
-	@Override
-	public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException {
-	    List<Contact> tmpContactList = mContactOnGroup.get(group);
-	    Contact curContact = null;
-	    for (Contact c : tmpContactList) {
-		if (jid.equals(c.getJID())) {
-		    curContact = c;
-		    tmpContactList.remove(c);
-		    c.getGroups().remove(group);
-		    if (mContactOnGroup.get(group).size() == 0) {
-			mContactOnGroup.remove(group);
-			mListGroup.remove(group);
-			mListContact = mContactOnGroup.get(getString(R.string.contact_list_all_contact));
-		    }
-		    break;
-		}
-	    }
-	    if (curContact != null && curContact.getGroups().size() == 0) {
-		mContactOnGroup.get(getString(R.string.contact_list_no_group)).add(curContact);
-	    }
-	    mHandler.post(new RunnableChange());
-	}
-
 	/**
 	 * {@inheritDoc}
 	 */