# HG changeset patch
# User nikita@nikita-rack
# Date 1239127950 -7200
# Node ID ff92a9c95c78c5899bd4e7fd3e2f3e0150e195a0
# Parent b99c01522c62c2f05bcf5fb4ab7281adecf457db# Parent eb9112a00b024f176cb9cf8ce8a676727ca03370
merge avec beem-ui
diff -r b99c01522c62 -r ff92a9c95c78 res/layout/contactlistcontact.xml
--- 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" >
diff -r b99c01522c62 -r ff92a9c95c78 src/com/beem/project/beem/service/Contact.java
diff -r b99c01522c62 -r ff92a9c95c78 src/com/beem/project/beem/ui/ContactList.java
--- 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 addresses)
+ throws RemoteException {
+ Log.i(TAG, "ENTRIES ADDED");
+
+ }
+ @Override
+ public void onEntriesDeleted(List addresses)
+ throws RemoteException {
+ Log.i(TAG, "ENTRIES DEL");
+
+ }
+ @Override
+ public void onEntriesUpdated(List 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