--- a/src/com/beem/project/beem/ui/ContactList.java Thu May 21 22:18:14 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java Thu May 21 23:50:57 2009 +0200
@@ -60,14 +60,8 @@
mRosterListener = new BeemRosterListener();
mSettings = getSharedPreferences(getString(R.string.PreferenceFileName), MODE_PRIVATE);
mBeemApplication = BeemApplication.getApplication(this);
-
- //TODO: a refaire
- /*if (mSettings.getString(getString(R.string.PreferenceHostKey), "").equals(""))
- startActivityForResult(new Intent(this, ContactListSettings.class), PREFERENCECHANGED);*/
- }
-
- @Override
- protected void onResume() {
+ groupMap = new HashMap<String, List<Contact>>();
+ groupName = new ArrayList<String>();
mBeemApplication.callWhenConnectedToServer(mHandler, new Runnable() {
@Override
public void run() {
@@ -87,8 +81,10 @@
callbackShowContactList();
}
});
- super.onResume();
- }
+ //TODO: a refaire
+ if (mSettings.getString(getString(R.string.PreferenceHostKey), "").equals(""))
+ startActivityForResult(new Intent(ContactList.this, ContactListSettings.class), PREFERENCECHANGED);
+ }
@Override
protected void onDestroy() {
@@ -97,12 +93,13 @@
}
private void callbackShowContactList() {
- if (mRoster != null)
+ if (mRoster != null) {
try {
buildContactList(mRoster.getContactList());
} catch (RemoteException e) {
e.printStackTrace();
}
+ }
}
/**
@@ -145,8 +142,6 @@
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- //TODO:marche pas
- Log.d(TAG, "onActivityResult" );
if (requestCode == PREFERENCECHANGED) {
Log.d(TAG, "onPREFERENCECHANGED");
if (resultCode == RESULT_OK) {
@@ -155,9 +150,6 @@
mBeemApplication.stopBeemService();
}
}
- if (requestCode == 1) {
- Log.d(TAG, "onSENDIMRESULT");
- }
}
@Override
@@ -174,9 +166,7 @@
}
private void buildContactList(List<Contact> listContact) {
- mListContact = listContact;
- groupMap = new HashMap<String, List<Contact>>();
- groupName = new ArrayList<String>();
+ mListContact = listContact;
for (Contact contact : listContact) {
for (String group: contact.getGroups()) {
if (!groupMap.containsKey(group)) {
@@ -184,7 +174,8 @@
groupName.add(group);
}
try {
- groupMap.get(group).add(contact);
+ if (!groupMap.get(group).contains(contact))
+ groupMap.get(group).add(contact);
} catch (NullPointerException e) {
Log.e(TAG, "Failed to find group in groupMap", e);
}