go maison
authornikita@nikita-lab
Thu, 21 May 2009 23:50:57 +0200
changeset 195 fb0591e482d8
parent 194 4f1b3af03671
child 198 088857b09c7d
go maison
src/com/beem/project/beem/ui/ContactList.java
--- 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);
 		}