--- a/src/com/beem/project/beem/ui/ContactList.java Thu Apr 23 14:32:45 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java Thu Apr 23 16:59:45 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.os.Bundle;
import android.os.Handler;
@@ -38,22 +37,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 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;
}
@@ -62,8 +59,6 @@
protected void onCreate(Bundle saveBundle) {
super.onCreate(saveBundle);
mBeemApplication = BeemApplication.getApplication(this);
- mSettings = getSharedPreferences(
- getString(R.string.PreferenceFileName), MODE_PRIVATE);
mRosterListener = new BeemRosterListener();
mBeemApplication.startBeemService();
mBeemApplication.callWhenConnectedToServer(new Handler(), new Runnable() {
@@ -89,9 +84,9 @@
@Override
protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- mBeemApplication.unbindBeemService();
+ // TODO Auto-generated method stub
+ super.onDestroy();
+ mBeemApplication.unbindBeemService();
}
private void callbackShowContactList() {
@@ -100,8 +95,7 @@
*/
if (mRoster != null)
try {
- showContactList(mRoster.getGroupsNames(), mRoster
- .getContactList());
+ showContactList(mRoster.getGroupsNames(), mRoster.getContactList());
} catch (RemoteException e) {
e.printStackTrace();
}
@@ -109,9 +103,7 @@
/**
* Callback for menu creation.
- *
- * @param menu
- * the menu created
+ * @param menu the menu created
* @return true on success, false otherwise
*/
@Override
@@ -124,9 +116,7 @@
/**
* Callback for menu item selected.
- *
- * @param item
- * the item selected
+ * @param item the item selected
* @return true on success, false otherwise
*/
@Override
@@ -148,19 +138,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>>>();
@@ -175,43 +169,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;
@@ -220,8 +207,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) {
@@ -229,13 +216,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) {
@@ -244,33 +231,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);
@@ -285,13 +265,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);
}
}
@@ -301,29 +279,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");
}