# 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