# HG changeset patch # User Philippe Lago # Date 1239142344 -7200 # Node ID 7d0e36aa1be5049158a66bbd625d0330c9801ab0 # Parent 9a4dbd7fe5460ce8f23d78a92969a23d42e9f0c6# Parent 2e6e98e9f8efdae62104e7220d2539d7626a2cd3 le commit apres le merge j'apprends diff -r 9a4dbd7fe546 -r 7d0e36aa1be5 res/layout/contactlistcontact.xml --- a/res/layout/contactlistcontact.xml Wed Apr 08 00:02:09 2009 +0200 +++ b/res/layout/contactlistcontact.xml Wed Apr 08 00:12:24 2009 +0200 @@ -6,7 +6,7 @@ android:gravity="center_vertical" > diff -r 9a4dbd7fe546 -r 7d0e36aa1be5 src/com/beem/project/beem/service/Contact.java --- a/src/com/beem/project/beem/service/Contact.java Wed Apr 08 00:02:09 2009 +0200 +++ b/src/com/beem/project/beem/service/Contact.java Wed Apr 08 00:12:24 2009 +0200 @@ -169,26 +169,36 @@ } else { Log.d(TAG, "Presence OK"); Mode mode = presence.getMode(); - switch (mode) { - case available: - mStatus = Contact.CONTACT_STATUS_AVAILABLE; - break; - case away: - mStatus = Contact.CONTACT_STATUS_AWAY; - break; - case chat: - mStatus = Contact.CONTACT_STATUS_AVAILABLE_FOR_CHAT; - break; - case dnd: - mStatus = Contact.CONTACT_STATUS_BUSY; - break; - case xa: - mStatus = Contact.CONTACT_STATUS_UNAVAILABLE; - break; - default: - Log.e("RosterAdapter", "Status mode non gere"); + if (mode == null) { + mStatus = Contact.CONTACT_STATUS_AVAILABLE; + } + else { + switch (mode) { + case available: + Log.d(TAG, "Available"); + mStatus = Contact.CONTACT_STATUS_AVAILABLE; + break; + case away: + Log.d(TAG, "Away"); + mStatus = Contact.CONTACT_STATUS_AWAY; + break; + case chat: + Log.d(TAG, "Chat"); + mStatus = Contact.CONTACT_STATUS_AVAILABLE_FOR_CHAT; + break; + case dnd: + Log.d(TAG, "Dnd"); + mStatus = Contact.CONTACT_STATUS_BUSY; + break; + case xa: + Log.d(TAG, "Xa"); + mStatus = Contact.CONTACT_STATUS_UNAVAILABLE; + break; + default: + Log.d(TAG, "Status mode non gere"); mStatus = Contact.CONTACT_STATUS_DISCONNECT; break; + } } } } diff -r 9a4dbd7fe546 -r 7d0e36aa1be5 src/com/beem/project/beem/ui/ContactList.java --- a/src/com/beem/project/beem/ui/ContactList.java Wed Apr 08 00:02:09 2009 +0200 +++ b/src/com/beem/project/beem/ui/ContactList.java Wed Apr 08 00:12:24 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