# HG changeset patch # User Marseille # Date 1245839681 -7200 # Node ID d951927691e13af6543fcad2f0c4159370cd98ec # Parent 8979375c19f0a7e1c9edccca3e9bb8caeba92f92 EntriesDeleted diff -r 8979375c19f0 -r d951927691e1 src/com/beem/project/beem/service/RosterAdapter.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 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 tab = new ArrayList(); @@ -285,7 +285,7 @@ */ @Override public void entriesUpdated(Collection 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 tab = new ArrayList(); @@ -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) { diff -r 8979375c19f0 -r d951927691e1 src/com/beem/project/beem/ui/AddContact.java --- 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); } diff -r 8979375c19f0 -r d951927691e1 src/com/beem/project/beem/ui/ContactDialog.java --- 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(); } diff -r 8979375c19f0 -r d951927691e1 src/com/beem/project/beem/ui/ContactList.java --- 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 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 addresses) throws RemoteException { - Log.i("CONTACTLIST", "EntreiesDeleted"); + Log.e("CONTACTLIST", "DEBUG - ONENTRIESDELETED()"); for (List 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 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()); + 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; } }