--- a/res/layout/contactlistcontact.xml Tue Apr 07 19:59:47 2009 +0200
+++ b/res/layout/contactlistcontact.xml Tue Apr 07 20:12:30 2009 +0200
@@ -6,7 +6,7 @@
android:gravity="center_vertical" >
<ImageView android:id="@+id/contactliststatus"
- android:layout_weight="5"
+ android:layout_weight="5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical" />
--- a/src/com/beem/project/beem/ui/ContactList.java Tue Apr 07 19:59:47 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java Tue Apr 07 20:12:30 2009 +0200
@@ -13,6 +13,7 @@
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
+import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.view.Menu;
@@ -29,6 +30,8 @@
import com.beem.project.beem.BeemApplication;
import com.beem.project.beem.R;
import com.beem.project.beem.service.Contact;
+import com.beem.project.beem.service.PresenceAdapter;
+import com.beem.project.beem.service.aidl.IBeemRosterListener;
import com.beem.project.beem.service.aidl.IXmppFacade;
import com.beem.project.beem.service.aidl.IRoster;
@@ -40,6 +43,8 @@
private Handler mHandler;
private BeemApplication mBeemApplication;
private ContactListDialogSettings mDialog;
+ private BeemRosterListener mRosterListener;
+ private IRoster mRoster;
@SuppressWarnings("unchecked")
@Override
@@ -62,6 +67,7 @@
mSettings = getSharedPreferences(
getString(R.string.PreferenceFileName), MODE_PRIVATE);
mDialog = new ContactListDialogSettings(this, mSettings);
+ mRosterListener = new BeemRosterListener();
mSettings
.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() {
@@ -81,7 +87,6 @@
*/
}
});
-
}
@Override
@@ -102,6 +107,14 @@
mBeemApplication.callWhenConnectedToServer(mHandler, new Runnable() {
@Override
public void run() {
+ mService = mBeemApplication.getXmppFacade();
+ try {
+ mRoster = mService.getRoster();
+ mRoster.addConnectionListener(mRosterListener);
+ Log.i(TAG, "ROSTERLISTENER OK");
+ } catch (RemoteException e) {
+ e.printStackTrace();
+ }
callbackShowContactList();
}
});
@@ -111,17 +124,12 @@
/*
* @TODO: A ameliorer apres listener de nikita
*/
- mService = mBeemApplication.getXmppFacade();
- if (mService != null) {
+ if (mRoster != null)
try {
- IRoster r = mService.getRoster();
- if (r != null)
- showContactList(r.getGroupsNames(), r.getContactList());
+ showContactList(mRoster.getGroupsNames(), mRoster.getContactList());
} catch (RemoteException e) {
- // TODO Auto-generated catch block
e.printStackTrace();
- }
- }
+ }
}
/**
@@ -245,25 +253,32 @@
switch (c.getStatus()) {
case Contact.CONTACT_STATUS_AVAILABLE:
imageDrawable = (Drawable) getResources().getDrawable(
- R.drawable.avatar);
+ R.drawable.online);
+ break;
case Contact.CONTACT_STATUS_AVAILABLE_FOR_CHAT:
imageDrawable = (Drawable) getResources().getDrawable(
R.drawable.chat);
+ break;
case Contact.CONTACT_STATUS_AWAY:
imageDrawable = (Drawable) getResources().getDrawable(
R.drawable.away);
+ break;
case Contact.CONTACT_STATUS_BUSY:
imageDrawable = (Drawable) getResources().getDrawable(
R.drawable.dnd);
+ break;
case Contact.CONTACT_STATUS_DISCONNECT:
imageDrawable = (Drawable) getResources().getDrawable(
R.drawable.offline);
+ break;
case Contact.CONTACT_STATUS_UNAVAILABLE:
imageDrawable = (Drawable) getResources().getDrawable(
R.drawable.requested);
+ break;
default:
imageDrawable = (Drawable) getResources().getDrawable(
R.drawable.error);
+ break;
}
imgV.setImageDrawable(imageDrawable);
@@ -292,4 +307,33 @@
}
}
}
+
+ private class BeemRosterListener extends IBeemRosterListener.Stub {
+
+ @Override
+ public void onEntriesAdded(List<String> addresses)
+ throws RemoteException {
+ Log.i(TAG, "ENTRIES ADDED");
+
+ }
+ @Override
+ public void onEntriesDeleted(List<String> addresses)
+ throws RemoteException {
+ Log.i(TAG, "ENTRIES DEL");
+
+ }
+ @Override
+ public void onEntriesUpdated(List<String> addresses)
+ throws RemoteException {
+ Log.i(TAG, "ENTRIES UPD");
+
+ }
+ @Override
+ public void onPresenceChanged(PresenceAdapter presence)
+ throws RemoteException {
+ Log.i(TAG, "PRESENCE CHANGED");
+
+ }
+
+ }
}
\ No newline at end of file