--- a/src/com/beem/project/beem/ui/ContactList.java Thu Apr 23 15:37:24 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java Thu Apr 23 17:03:53 2009 +0200
@@ -8,7 +8,6 @@
import android.app.ExpandableListActivity;
import android.content.Context;
import android.content.Intent;
-import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
@@ -39,23 +38,20 @@
private static final String TAG = "CONTACTLIST_ACT";
private static final int PREFERENCECHANGED = 0;
- private static final int CREATEACCOUNT = 1;
+ private static final String CHILD = "CHILD";
+ private static final String GROUP = "GROUP";
private IXmppFacade mService = null;
- private SharedPreferences mSettings;
- private Handler mHandler;
private BeemApplication mBeemApplication;
private BeemRosterListener mRosterListener;
private IRoster mRoster;
@SuppressWarnings("unchecked")
@Override
- public boolean onChildClick(ExpandableListView parent, View v,
- int groupPosition, int childPosition, long id) {
+ public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
+ Map<String, Contact> child = (HashMap<String, Contact>) parent.getExpandableListAdapter().getChild(
+ groupPosition, childPosition);
Intent i = new Intent(this, SendIM.class);
- Map<String, Contact> child = (HashMap<String, Contact>) parent
- .getExpandableListAdapter().getChild(groupPosition,
- childPosition);
- i.putExtra("contact", child.get("CHILD"));
+ i.putExtra("contact", child.get(CHILD));
startActivity(i);
return true;
}
@@ -63,35 +59,10 @@
@Override
protected void onCreate(Bundle saveBundle) {
super.onCreate(saveBundle);
- setTheme(R.style.customtheme_contactList);
- mHandler = new Handler();
mBeemApplication = BeemApplication.getApplication(this);
- mSettings = getSharedPreferences(
- getString(R.string.PreferenceFileName), MODE_PRIVATE);
mRosterListener = new BeemRosterListener();
- }
-
- @Override
- protected void onStart() {
- super.onStart();
- }
-
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- mBeemApplication.unbindBeemService();
- }
-
- @Override
- protected void onResume() {
- super.onResume();
mBeemApplication.startBeemService();
- /*
- * @TODO: A ameliorer apres listener de nikita
- */
- Log.i(TAG, "onResume");
- mBeemApplication.callWhenConnectedToServer(mHandler, new Runnable() {
+ mBeemApplication.callWhenConnectedToServer(new Handler(), new Runnable() {
@Override
public void run() {
mService = mBeemApplication.getXmppFacade();
@@ -112,14 +83,20 @@
});
}
+ @Override
+ protected void onDestroy() {
+ // TODO Auto-generated method stub
+ super.onDestroy();
+ mBeemApplication.unbindBeemService();
+ }
+
private void callbackShowContactList() {
/*
* @TODO: A ameliorer apres listener de nikita
*/
if (mRoster != null)
try {
- showContactList(mRoster.getGroupsNames(), mRoster
- .getContactList());
+ showContactList(mRoster.getGroupsNames(), mRoster.getContactList());
} catch (RemoteException e) {
e.printStackTrace();
}
@@ -127,9 +104,7 @@
/**
* Callback for menu creation.
- *
- * @param menu
- * the menu created
+ * @param menu the menu created
* @return true on success, false otherwise
*/
@Override
@@ -142,9 +117,7 @@
/**
* Callback for menu item selected.
- *
- * @param item
- * the item selected
+ * @param item the item selected
* @return true on success, false otherwise
*/
@Override
@@ -168,19 +141,23 @@
}
}
- protected void onActivityResult(int requestCode, int resultCode,
- Intent data) {
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PREFERENCECHANGED) {
if (resultCode == RESULT_OK) {
mBeemApplication.stopBeemService();
mBeemApplication.startBeemService();
- }
+ }
}
}
+ private boolean isStatusOK(int status) {
+ if (status == Status.CONTACT_STATUS_AVAILABLE || status == Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT
+ || status == Status.CONTACT_STATUS_AWAY || status == Status.CONTACT_STATUS_BUSY)
+ return true;
+ return false;
+ }
- private void showContactList(List<String> listGroup,
- List<Contact> listContact) {
+ private void showContactList(List<String> listGroup, List<Contact> listContact) {
ExpandableListAdapter Adapter;
List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
List<List<Map<String, Contact>>> childData = new ArrayList<List<Map<String, Contact>>>();
@@ -195,43 +172,36 @@
List<Map<String, Contact>> children = new ArrayList<Map<String, Contact>>();
for (int j = 0; j < listContact.size(); ++j) {
+ Contact c = listContact.get(j);
+ Log.i(TAG, c.getID() + " " + c.getJID());
Map<String, Contact> curChildMap = new HashMap<String, Contact>();
children.add(curChildMap);
- Contact c = listContact.get(j);
- Log.i(TAG, c.getID() + " " + c.getJID());
- curChildMap.put("CHILD", c);
+ curChildMap.put(CHILD, c);
}
childData.add(children);
}
- Adapter = new ContactExpandableListAdapter(this, groupData,
- R.layout.contactlistgroup, new String[] { "GROUP" },
- new int[] { R.id.textgroup }, childData,
- R.layout.contactlistcontact, new String[] { "CHILD" },
- new int[] { R.id.contactliststatus, R.id.contactlistpseudo,
- R.id.contactlistmsgperso, R.id.contactlistavatar });
+ Adapter = new ContactExpandableListAdapter(this, groupData, R.layout.contactlistgroup,
+ new String[] { GROUP }, new int[] { R.id.textgroup }, childData, R.layout.contactlistcontact,
+ new String[] { CHILD }, new int[] { R.id.contactliststatus, R.id.contactlistpseudo,
+ R.id.contactlistmsgperso, R.id.contactlistavatar });
setListAdapter(Adapter);
}
/**
- * A simple adapter which allows you to bind data to specific Views defined
- * within the layout of an Expandable Lists children (Implement
- * getGroupView() to define the layout of parents)
+ * A simple adapter which allows you to bind data to specific Views defined within the layout of an Expandable Lists
+ * children (Implement getGroupView() to define the layout of parents)
*/
- private class ContactExpandableListAdapter extends
- SimpleExpandableListAdapter {
+ private class ContactExpandableListAdapter extends SimpleExpandableListAdapter {
private List<? extends List<? extends Map<String, ?>>> mChildData;
private String[] mChildFrom;
private int[] mChildTo;
- public ContactExpandableListAdapter(Context context,
- List<? extends Map<String, ?>> groupData, int groupLayout,
- String[] groupFrom, int[] groupTo,
- List<? extends List<? extends Map<String, ?>>> childData,
- int childLayout, String[] childFrom, int[] childTo) {
- super(context, groupData, groupLayout, groupFrom, groupTo,
- childData, childLayout, childFrom, childTo);
+ public ContactExpandableListAdapter(Context context, List<? extends Map<String, ?>> groupData, int groupLayout,
+ String[] groupFrom, int[] groupTo, List<? extends List<? extends Map<String, ?>>> childData,
+ int childLayout, String[] childFrom, int[] childTo) {
+ super(context, groupData, groupLayout, groupFrom, groupTo, childData, childLayout, childFrom, childTo);
mChildData = childData;
mChildFrom = childFrom;
@@ -240,8 +210,8 @@
}
@Override
- public View getChildView(int groupPosition, int childPosition,
- boolean isLastChild, View convertView, ViewGroup parent) {
+ public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
+ ViewGroup parent) {
View v;
if (convertView == null) {
@@ -249,13 +219,13 @@
} else {
v = convertView;
}
- bindView(v, mChildData.get(groupPosition).get(childPosition),
- mChildFrom, mChildTo, groupPosition, childPosition);
+ bindView(v, mChildData.get(groupPosition).get(childPosition), mChildFrom, mChildTo, groupPosition,
+ childPosition);
return v;
}
- private void bindView(View view, Map<String, ?> data, String[] from,
- int[] to, int groupPosition, int childPosition) {
+ private void bindView(View view, Map<String, ?> data, String[] from, int[] to, int groupPosition,
+ int childPosition) {
Contact c = (Contact) data.get(from[0]);
if (c != null) {
@@ -264,33 +234,26 @@
Drawable imageDrawable = null;
switch (c.getStatus()) {
case Status.CONTACT_STATUS_AVAILABLE:
- imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.online);
+ imageDrawable = (Drawable) getResources().getDrawable(R.drawable.online);
break;
case Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT:
- imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.chat);
+ imageDrawable = (Drawable) getResources().getDrawable(R.drawable.chat);
break;
case Status.CONTACT_STATUS_AWAY:
- imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.away);
+ imageDrawable = (Drawable) getResources().getDrawable(R.drawable.away);
break;
case Status.CONTACT_STATUS_BUSY:
- imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.dnd);
+ imageDrawable = (Drawable) getResources().getDrawable(R.drawable.dnd);
break;
case Status.CONTACT_STATUS_DISCONNECT:
- imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.offline);
+ imageDrawable = (Drawable) getResources().getDrawable(R.drawable.offline);
break;
case Status.CONTACT_STATUS_UNAVAILABLE:
- imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.requested);
+ imageDrawable = (Drawable) getResources().getDrawable(R.drawable.requested);
break;
default:
- imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.error);
- break;
+ imageDrawable = (Drawable) getResources().getDrawable(R.drawable.error);
+ break;
}
imgV.setImageDrawable(imageDrawable);
@@ -305,13 +268,11 @@
}
/*
- * TODO: Rajouter l'avatar du contact getAvatar() dans la
- * classe
+ * TODO: Rajouter l'avatar du contact getAvatar() dans la classe
*/
imgV = (ImageView) view.findViewById(to[3]);
if (imgV != null) {
- imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.avatar);
+ imageDrawable = (Drawable) getResources().getDrawable(R.drawable.avatar);
imgV.setImageDrawable(imageDrawable);
}
}
@@ -321,29 +282,25 @@
private class BeemRosterListener extends IBeemRosterListener.Stub {
@Override
- public void onEntriesAdded(List<String> addresses)
- throws RemoteException {
+ public void onEntriesAdded(List<String> addresses) throws RemoteException {
Log.i(TAG, "ENTRIES ADDED");
}
@Override
- public void onEntriesDeleted(List<String> addresses)
- throws RemoteException {
+ public void onEntriesDeleted(List<String> addresses) throws RemoteException {
Log.i(TAG, "ENTRIES DEL");
}
@Override
- public void onEntriesUpdated(List<String> addresses)
- throws RemoteException {
+ public void onEntriesUpdated(List<String> addresses) throws RemoteException {
Log.i(TAG, "ENTRIES UPD");
}
@Override
- public void onPresenceChanged(PresenceAdapter presence)
- throws RemoteException {
+ public void onPresenceChanged(PresenceAdapter presence) throws RemoteException {
Log.i(TAG, "PRESENCE CHANGED");
}