--- 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;
}
}