Rename some XMPP* classes in Xmpp*
authorDa Risk <darisk972@gmail.com>
Fri, 03 Apr 2009 14:18:10 +0200
changeset 67 8c3870db8e31
parent 58 ae9ca6ed9095
child 68 0c76c67a2b99
Rename some XMPP* classes in Xmpp*
src/com/beem/project/beem/BeemApplication.java
src/com/beem/project/beem/BeemService.java
src/com/beem/project/beem/service/XMPPConnectionAdapter.java
src/com/beem/project/beem/service/XMPPFacade.java
src/com/beem/project/beem/service/XmppConnectionAdapter.java
src/com/beem/project/beem/service/XmppFacade.java
src/com/beem/project/beem/service/aidl/IXMPPFacade.aidl
src/com/beem/project/beem/service/aidl/IXmppFacade.aidl
src/com/beem/project/beem/ui/ContactList.java
--- a/src/com/beem/project/beem/BeemApplication.java	Fri Apr 03 00:43:02 2009 +0200
+++ b/src/com/beem/project/beem/BeemApplication.java	Fri Apr 03 14:18:10 2009 +0200
@@ -18,7 +18,7 @@
 import android.os.IBinder;
 import android.os.Message;
 
-import com.beem.project.beem.service.aidl.IXMPPFacade;
+import com.beem.project.beem.service.aidl.IXmppFacade;
 
 /**
  * The Beem application.
@@ -28,7 +28,7 @@
 public class BeemApplication extends Application {
 
     private static BeemApplication mBeemApp;
-    private IXMPPFacade mFacade;
+    private IXmppFacade mFacade;
     private Context mApplicationContext;
     private Resources mPrivateResources;
     private List<Message> mQueue = new LinkedList<Message>();
@@ -45,7 +45,7 @@
 	@Override
 	public void onServiceConnected(ComponentName name, IBinder service) {
 	    // TODO Auto-generated method stub
-	    mFacade = IXMPPFacade.Stub.asInterface(service);
+	    mFacade = IXmppFacade.Stub.asInterface(service);
 	    synchronized (mQueue) {
 		for (Message msg : mQueue) {
 		    msg.sendToTarget();
@@ -141,7 +141,7 @@
      * Get the facade to use to access the Beem service.
      * @return	the facade or null if the application is not connected to the beem service.
      */
-    public IXMPPFacade getXmppFacade() {
+    public IXmppFacade getXmppFacade() {
 	return mFacade;
     }
 
--- a/src/com/beem/project/beem/BeemService.java	Fri Apr 03 00:43:02 2009 +0200
+++ b/src/com/beem/project/beem/BeemService.java	Fri Apr 03 14:18:10 2009 +0200
@@ -10,9 +10,9 @@
 import android.os.RemoteException;
 import android.widget.Toast;
 
-import com.beem.project.beem.service.XMPPConnectionAdapter;
-import com.beem.project.beem.service.XMPPFacade;
-import com.beem.project.beem.service.aidl.IXMPPFacade;
+import com.beem.project.beem.service.XmppConnectionAdapter;
+import com.beem.project.beem.service.XmppFacade;
+import com.beem.project.beem.service.aidl.IXmppFacade;
 import com.beem.project.beem.service.aidl.IXmppConnection;
 /**
  * This class is for the Beem service.
@@ -29,7 +29,7 @@
     private String mPassword;
     private String mHost;
 
-    private IXMPPFacade.Stub mBind;
+    private IXmppFacade.Stub mBind;
 
     /**
      * {@inheritDoc}
@@ -55,8 +55,8 @@
 		getString(R.string.PreferencePasswordKey), "");
 	mHost = mSettings.getString(getString(R.string.PreferenceHostKey), "");
 	mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
-	mConnection = new XMPPConnectionAdapter("10.0.2.2", mLogin, mPassword); // address
-	mBind = new XMPPFacade((XMPPConnectionAdapter) mConnection);
+	mConnection = new XmppConnectionAdapter("10.0.2.2", mLogin, mPassword); // address
+	mBind = new XmppFacade((XmppConnectionAdapter) mConnection);
     }
 
     /**
--- a/src/com/beem/project/beem/service/XMPPConnectionAdapter.java	Fri Apr 03 00:43:02 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,332 +0,0 @@
-/**
- *
- */
-package com.beem.project.beem.service;
-
-import org.jivesoftware.smack.ConnectionConfiguration;
-import org.jivesoftware.smack.ConnectionListener;
-import org.jivesoftware.smack.Roster;
-import org.jivesoftware.smack.XMPPConnection;
-import org.jivesoftware.smack.XMPPException;
-import org.jivesoftware.smackx.ServiceDiscoveryManager;
-import org.jivesoftware.smackx.jingle.JingleManager;
-import android.os.RemoteCallbackList;
-import android.os.RemoteException;
-import android.util.Log;
-import com.beem.project.beem.BeemException;
-import com.beem.project.beem.service.aidl.IBeemConnectionListener;
-import com.beem.project.beem.service.aidl.IChatManager;
-import com.beem.project.beem.service.aidl.IRoster;
-import com.beem.project.beem.service.aidl.IXmppConnection;
-
-/**
- * This class implements an adapter for XMPPConnection.
- * @author darisk
- */
-public class XMPPConnectionAdapter extends IXmppConnection.Stub {
-
-    private static final String TAG = "XMPPConnectionAdapter";
-    private XMPPConnection mAdaptee;
-    private IChatManager mChatManager;
-    private BeemException mLastException;
-    private String mLogin;
-    private String mPassword;
-    private RosterAdapter mRoster;
-
-    private RemoteCallbackList<IBeemConnectionListener> mRemoteConnListeners =
-	new RemoteCallbackList<IBeemConnectionListener>();
-    private ConnexionListenerAdapter mConListener = new ConnexionListenerAdapter();
-
-    /**
-     * Constructor.
-     * @param con The connection to adapt
-     * @param login The login to use
-     * @param password The password to use
-     */
-    public XMPPConnectionAdapter(final XMPPConnection con, final String login, final String password) {
-	mAdaptee = con;
-	mLogin = login;
-	mPassword = password;
-    }
-
-    /**
-     * Constructor.
-     * @param serviceName name of the service to connect to
-     * @param login login to use on connect
-     * @param password password to use on connect
-     */
-    public XMPPConnectionAdapter(final String serviceName, final String login, final String password) {
-	this(new XMPPConnection(serviceName), login, password);
-    }
-
-    /**
-     * Constructor.
-     * @param config Configuration to use in order to connect
-     * @param login login to use on connect
-     * @param password password to use on connect
-     */
-    public XMPPConnectionAdapter(final ConnectionConfiguration config, final String login, final String password) {
-	this(new XMPPConnection(config), login, password);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean connectSync() throws RemoteException {
-	try {
-	    mAdaptee.connect();
-	    mAdaptee.addConnectionListener(mConListener);
-	    mAdaptee.login(mLogin, mPassword, "BEEM");
-	    mChatManager = new BeemChatManager(mAdaptee.getChatManager());
-	    // TODO find why this cause a null pointer exception
-	    // this.initFeatures(); // pour declarer les features xmpp qu'on supporte
-	    mLastException = null;
-	    triggerAsynchronousConnectEvent();
-	    return true;
-	} catch (XMPPException e) {
-	    mLastException = new BeemException(e);
-	}
-	return false;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean disconnect() {
-	mAdaptee.disconnect();
-	mLastException = null;
-	return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public IRoster getRoster() throws RemoteException {
-	if (mRoster != null)
-	    return mRoster;
-	Roster adap = mAdaptee.getRoster();
-	if (adap == null)
-	    return null;
-	mRoster = new RosterAdapter(adap);
-	return mRoster;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public final void connectAsync() throws RemoteException {
-	Thread t = new Thread(new Runnable() {
-
-	    @Override
-	    public void run() {
-		try {
-		    connectSync();
-		} catch (RemoteException e) {
-		    Log.e(TAG, "Error while connecting", e);
-		}
-	    }
-	});
-	t.start();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void addConnectionListener(IBeemConnectionListener listen) throws RemoteException {
-	if (listen != null)
-	    mRemoteConnListeners.register(listen);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void removeConnectionListener(IBeemConnectionListener listen) throws RemoteException {
-	if (listen != null)
-	    mRemoteConnListeners.unregister(listen);
-    }
-    
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public IChatManager getChatManager() throws RemoteException {
-	return mChatManager;
-    }
-
-    /**
-     * Trigger Connection event.
-     */
-    private void triggerAsynchronousConnectEvent() {
-	mConListener.onConnect();
-    }
-
-    /**
-     * Listener for XMPP connection events.
-     * It will calls the remote listeners for connexion events.
-     * @author darisk
-     */
-    private class ConnexionListenerAdapter implements ConnectionListener {
-
-	/**
-	 * Defaut constructor.
-	 */
-	public ConnexionListenerAdapter() {
-	    // TODO Auto-generated constructor stub
-	}
-
-	/**
-	 * Method to execute when a connection event occurs.
-	 */
-	public void onConnect() {
-	    final int n = mRemoteConnListeners.beginBroadcast();
-
-	    for (int i = 0; i < n; i++) {
-		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
-		try {
-		    listener.onConnect();
-		} catch (RemoteException e) {
-		    // The RemoteCallbackList will take care of removing the
-		    // dead listeners.
-		    Log.w(TAG, "Error while triggering remote connection listeners", e);
-		}
-	    }
-	    mRemoteConnListeners.finishBroadcast();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public void connectionClosed() {
-	    final int n = mRemoteConnListeners.beginBroadcast();
-
-	    for (int i = 0; i < n; i++) {
-		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
-		try {
-		    listener.connectionClosed();
-		} catch (RemoteException e) {
-		    // The RemoteCallbackList will take care of removing the
-		    // dead listeners.
-		    Log.w(TAG, "Error while triggering remote connection listeners", e);
-		}
-	    }
-	    mRemoteConnListeners.finishBroadcast();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public void connectionClosedOnError(Exception arg0) {
-	    final int n = mRemoteConnListeners.beginBroadcast();
-
-	    for (int i = 0; i < n; i++) {
-		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
-		try {
-		    listener.connectionClosedOnError();
-		} catch (RemoteException e) {
-		    // The RemoteCallbackList will take care of removing the
-		    // dead listeners.
-		    Log.w(TAG, "Error while triggering remote connection listeners", e);
-		}
-	    }
-	    mRemoteConnListeners.finishBroadcast();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public void reconnectingIn(int arg0) {
-	    final int n = mRemoteConnListeners.beginBroadcast();
-
-	    for (int i = 0; i < n; i++) {
-		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
-		try {
-		    listener.reconnectingIn(arg0);
-		} catch (RemoteException e) {
-		    // The RemoteCallbackList will take care of removing the
-		    // dead listeners.
-		}
-	    }
-	    mRemoteConnListeners.finishBroadcast();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public void reconnectionFailed(Exception arg0) {
-	    final int r = mRemoteConnListeners.beginBroadcast();
-
-	    for (int i = 0; i < r; i++) {
-		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
-		try {
-		    listener.reconnectionFailed();
-		} catch (RemoteException e) {
-		    // The RemoteCallbackList will take care of removing the
-		    // dead listeners.
-		    Log.w(TAG, "Error while triggering remote connection listeners", e);
-		}
-	    }
-	    mRemoteConnListeners.finishBroadcast();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 */
-	@Override
-	public void reconnectionSuccessful() {
-	    final int n = mRemoteConnListeners.beginBroadcast();
-
-	    for (int i = 0; i < n; i++) {
-		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
-		try {
-		    listener.reconnectionSuccessful();
-		} catch (RemoteException e) {
-		    // The RemoteCallbackList will take care of removing the
-		    // dead listeners.
-		    Log.w(TAG, "Error while triggering remote connection listeners", e);
-		}
-	    }
-	    mRemoteConnListeners.finishBroadcast();
-	}
-
-    }
-
-    /**
-     * enregistre les features dispo dans notre version Liste de features que Telepathy supporte.
-     * "http://www.google.com/xmpp/protocol/session" "http://www.google.com/transport/p2p"
-     * "http://jabber.org/protocol/jingle" "http://jabber.org/protocol/chatstates" "http://jabber.org/protocol/nick"
-     * "http://jabber.org/protocol/nick+notify" "http://jabber.org/protocol/si" "ttp://jabber.org/protocol/ibb"
-     * "ttp://telepathy.freedesktop.org/xmpp/tubes" "http://www.google.com/xmpp/protocol/voice/v1"
-     * "http://jabber.org/protocol/jingle/description/audio" "http://jabber.org/protocol/jingle/description/video" Liste
-     * de features que pidgin `supporte' (on notera la cradence de l'annonce): "jabber:iq:last" "jabber:iq:oob"
-     * "jabber:iq:time" "jabber:iq:version" "jabber:x:conference" "urn:xmpp:attention:0" "urn:xmpp:bob" "urn:xmpp:ping"
-     * "xmpp:urn:time" "http://jabber.org/protocol/bytestreams" "http://jabber.org/protocol/disco#info"
-     * "http://jabber.org/protocol/disco#items" "http://jabber.org/protocol/ibb" "http://jabber.org/protocol/muc"
-     * "http://jabber.org/protocol/muc#user" "http://jabber.org/protocol/si"
-     * "http://jabber.org/protocol/si/profile/file-transfer" "http://jabber.org/protocol/xhtml-im"
-     * "http://www.xmpp.org/extensions/xep-0199.html#ns" "http://jabber.org/protocol/mood"
-     * "http://jabber.org/protocol/mood+notify" "http://jabber.org/protocol/nick"
-     * "http://jabber.org/protocol/nick+notify" "http://jabber.org/protocol/tune"
-     * "http://jabber.org/protocol/tune+notify" "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata"
-     * "http://www.xmpp.org/extensions/xep-0084.html#ns-data"
-     * "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata+notify"
-     * "http://www.xmpp.org/extensions/xep-0167.html#ns" << Jingle RTP Sessions
-     */
-    private void initFeatures() {
-	JingleManager.setJingleServiceEnabled();
-	ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(mAdaptee);
-	sdm.addFeature("http://jabber.org/protocol/disco#info");
-	// sdm.addFeature("http://jabber.org/protocol/nick");
-
-    }
-
-}
--- a/src/com/beem/project/beem/service/XMPPFacade.java	Fri Apr 03 00:43:02 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-package com.beem.project.beem.service;
-import android.os.RemoteException;
-
-import com.beem.project.beem.service.aidl.IChatManager;
-import com.beem.project.beem.service.aidl.IRoster;
-import com.beem.project.beem.service.aidl.IXmppConnection;
-import com.beem.project.beem.service.aidl.IXMPPFacade;
-
-/**
- * This class is a facade for the Beem Service.
- * @author darisk
- */
-public class XMPPFacade extends IXMPPFacade.Stub {
-
-    private XMPPConnectionAdapter mConnexion;
-
-    /**
-     * Constructor for XMPPFacade.
-     * @param connection the connection use by the facade
-     */
-    public XMPPFacade(final XMPPConnectionAdapter connection) {
-	this.mConnexion = connection;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void connectAsync() throws RemoteException {
-	// TODO Auto-generated method stub
-	mConnexion.connectAsync();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void connectSync() throws RemoteException {
-	// TODO Auto-generated method stub
-	mConnexion.connectSync();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public IXmppConnection createConnection() throws RemoteException {
-	// TODO Auto-generated method stub
-	return mConnexion;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void disconnect() throws RemoteException {
-	// TODO Auto-generated method stub
-	mConnexion.disconnect();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public IRoster getRoster() throws RemoteException {
-	return mConnexion.getRoster();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public IChatManager getChatManager() throws RemoteException {
-	return mConnexion.getChatManager();
-    }
-
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java	Fri Apr 03 14:18:10 2009 +0200
@@ -0,0 +1,332 @@
+/**
+ *
+ */
+package com.beem.project.beem.service;
+
+import org.jivesoftware.smack.ConnectionConfiguration;
+import org.jivesoftware.smack.ConnectionListener;
+import org.jivesoftware.smack.Roster;
+import org.jivesoftware.smack.XMPPConnection;
+import org.jivesoftware.smack.XMPPException;
+import org.jivesoftware.smackx.ServiceDiscoveryManager;
+import org.jivesoftware.smackx.jingle.JingleManager;
+import android.os.RemoteCallbackList;
+import android.os.RemoteException;
+import android.util.Log;
+import com.beem.project.beem.BeemException;
+import com.beem.project.beem.service.aidl.IBeemConnectionListener;
+import com.beem.project.beem.service.aidl.IChatManager;
+import com.beem.project.beem.service.aidl.IRoster;
+import com.beem.project.beem.service.aidl.IXmppConnection;
+
+/**
+ * This class implements an adapter for XMPPConnection.
+ * @author darisk
+ */
+public class XmppConnectionAdapter extends IXmppConnection.Stub {
+
+    private static final String TAG = "XMPPConnectionAdapter";
+    private XMPPConnection mAdaptee;
+    private IChatManager mChatManager;
+    private BeemException mLastException;
+    private String mLogin;
+    private String mPassword;
+    private RosterAdapter mRoster;
+
+    private RemoteCallbackList<IBeemConnectionListener> mRemoteConnListeners =
+	new RemoteCallbackList<IBeemConnectionListener>();
+    private ConnexionListenerAdapter mConListener = new ConnexionListenerAdapter();
+
+    /**
+     * Constructor.
+     * @param con The connection to adapt
+     * @param login The login to use
+     * @param password The password to use
+     */
+    public XmppConnectionAdapter(final XMPPConnection con, final String login, final String password) {
+	mAdaptee = con;
+	mLogin = login;
+	mPassword = password;
+    }
+
+    /**
+     * Constructor.
+     * @param serviceName name of the service to connect to
+     * @param login login to use on connect
+     * @param password password to use on connect
+     */
+    public XmppConnectionAdapter(final String serviceName, final String login, final String password) {
+	this(new XMPPConnection(serviceName), login, password);
+    }
+
+    /**
+     * Constructor.
+     * @param config Configuration to use in order to connect
+     * @param login login to use on connect
+     * @param password password to use on connect
+     */
+    public XmppConnectionAdapter(final ConnectionConfiguration config, final String login, final String password) {
+	this(new XMPPConnection(config), login, password);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean connectSync() throws RemoteException {
+	try {
+	    mAdaptee.connect();
+	    mAdaptee.addConnectionListener(mConListener);
+	    mAdaptee.login(mLogin, mPassword, "BEEM");
+	    mChatManager = new BeemChatManager(mAdaptee.getChatManager());
+	    // TODO find why this cause a null pointer exception
+	    // this.initFeatures(); // pour declarer les features xmpp qu'on supporte
+	    mLastException = null;
+	    triggerAsynchronousConnectEvent();
+	    return true;
+	} catch (XMPPException e) {
+	    mLastException = new BeemException(e);
+	}
+	return false;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean disconnect() {
+	mAdaptee.disconnect();
+	mLastException = null;
+	return true;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public IRoster getRoster() throws RemoteException {
+	if (mRoster != null)
+	    return mRoster;
+	Roster adap = mAdaptee.getRoster();
+	if (adap == null)
+	    return null;
+	mRoster = new RosterAdapter(adap);
+	return mRoster;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public final void connectAsync() throws RemoteException {
+	Thread t = new Thread(new Runnable() {
+
+	    @Override
+	    public void run() {
+		try {
+		    connectSync();
+		} catch (RemoteException e) {
+		    Log.e(TAG, "Error while connecting", e);
+		}
+	    }
+	});
+	t.start();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void addConnectionListener(IBeemConnectionListener listen) throws RemoteException {
+	if (listen != null)
+	    mRemoteConnListeners.register(listen);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void removeConnectionListener(IBeemConnectionListener listen) throws RemoteException {
+	if (listen != null)
+	    mRemoteConnListeners.unregister(listen);
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public IChatManager getChatManager() throws RemoteException {
+	return mChatManager;
+    }
+
+    /**
+     * Trigger Connection event.
+     */
+    private void triggerAsynchronousConnectEvent() {
+	mConListener.onConnect();
+    }
+
+    /**
+     * Listener for XMPP connection events.
+     * It will calls the remote listeners for connexion events.
+     * @author darisk
+     */
+    private class ConnexionListenerAdapter implements ConnectionListener {
+
+	/**
+	 * Defaut constructor.
+	 */
+	public ConnexionListenerAdapter() {
+	    // TODO Auto-generated constructor stub
+	}
+
+	/**
+	 * Method to execute when a connection event occurs.
+	 */
+	public void onConnect() {
+	    final int n = mRemoteConnListeners.beginBroadcast();
+
+	    for (int i = 0; i < n; i++) {
+		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
+		try {
+		    listener.onConnect();
+		} catch (RemoteException e) {
+		    // The RemoteCallbackList will take care of removing the
+		    // dead listeners.
+		    Log.w(TAG, "Error while triggering remote connection listeners", e);
+		}
+	    }
+	    mRemoteConnListeners.finishBroadcast();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void connectionClosed() {
+	    final int n = mRemoteConnListeners.beginBroadcast();
+
+	    for (int i = 0; i < n; i++) {
+		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
+		try {
+		    listener.connectionClosed();
+		} catch (RemoteException e) {
+		    // The RemoteCallbackList will take care of removing the
+		    // dead listeners.
+		    Log.w(TAG, "Error while triggering remote connection listeners", e);
+		}
+	    }
+	    mRemoteConnListeners.finishBroadcast();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void connectionClosedOnError(Exception arg0) {
+	    final int n = mRemoteConnListeners.beginBroadcast();
+
+	    for (int i = 0; i < n; i++) {
+		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
+		try {
+		    listener.connectionClosedOnError();
+		} catch (RemoteException e) {
+		    // The RemoteCallbackList will take care of removing the
+		    // dead listeners.
+		    Log.w(TAG, "Error while triggering remote connection listeners", e);
+		}
+	    }
+	    mRemoteConnListeners.finishBroadcast();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void reconnectingIn(int arg0) {
+	    final int n = mRemoteConnListeners.beginBroadcast();
+
+	    for (int i = 0; i < n; i++) {
+		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
+		try {
+		    listener.reconnectingIn(arg0);
+		} catch (RemoteException e) {
+		    // The RemoteCallbackList will take care of removing the
+		    // dead listeners.
+		}
+	    }
+	    mRemoteConnListeners.finishBroadcast();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void reconnectionFailed(Exception arg0) {
+	    final int r = mRemoteConnListeners.beginBroadcast();
+
+	    for (int i = 0; i < r; i++) {
+		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
+		try {
+		    listener.reconnectionFailed();
+		} catch (RemoteException e) {
+		    // The RemoteCallbackList will take care of removing the
+		    // dead listeners.
+		    Log.w(TAG, "Error while triggering remote connection listeners", e);
+		}
+	    }
+	    mRemoteConnListeners.finishBroadcast();
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	@Override
+	public void reconnectionSuccessful() {
+	    final int n = mRemoteConnListeners.beginBroadcast();
+
+	    for (int i = 0; i < n; i++) {
+		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
+		try {
+		    listener.reconnectionSuccessful();
+		} catch (RemoteException e) {
+		    // The RemoteCallbackList will take care of removing the
+		    // dead listeners.
+		    Log.w(TAG, "Error while triggering remote connection listeners", e);
+		}
+	    }
+	    mRemoteConnListeners.finishBroadcast();
+	}
+
+    }
+
+    /**
+     * enregistre les features dispo dans notre version Liste de features que Telepathy supporte.
+     * "http://www.google.com/xmpp/protocol/session" "http://www.google.com/transport/p2p"
+     * "http://jabber.org/protocol/jingle" "http://jabber.org/protocol/chatstates" "http://jabber.org/protocol/nick"
+     * "http://jabber.org/protocol/nick+notify" "http://jabber.org/protocol/si" "ttp://jabber.org/protocol/ibb"
+     * "ttp://telepathy.freedesktop.org/xmpp/tubes" "http://www.google.com/xmpp/protocol/voice/v1"
+     * "http://jabber.org/protocol/jingle/description/audio" "http://jabber.org/protocol/jingle/description/video" Liste
+     * de features que pidgin `supporte' (on notera la cradence de l'annonce): "jabber:iq:last" "jabber:iq:oob"
+     * "jabber:iq:time" "jabber:iq:version" "jabber:x:conference" "urn:xmpp:attention:0" "urn:xmpp:bob" "urn:xmpp:ping"
+     * "xmpp:urn:time" "http://jabber.org/protocol/bytestreams" "http://jabber.org/protocol/disco#info"
+     * "http://jabber.org/protocol/disco#items" "http://jabber.org/protocol/ibb" "http://jabber.org/protocol/muc"
+     * "http://jabber.org/protocol/muc#user" "http://jabber.org/protocol/si"
+     * "http://jabber.org/protocol/si/profile/file-transfer" "http://jabber.org/protocol/xhtml-im"
+     * "http://www.xmpp.org/extensions/xep-0199.html#ns" "http://jabber.org/protocol/mood"
+     * "http://jabber.org/protocol/mood+notify" "http://jabber.org/protocol/nick"
+     * "http://jabber.org/protocol/nick+notify" "http://jabber.org/protocol/tune"
+     * "http://jabber.org/protocol/tune+notify" "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata"
+     * "http://www.xmpp.org/extensions/xep-0084.html#ns-data"
+     * "http://www.xmpp.org/extensions/xep-0084.html#ns-metadata+notify"
+     * "http://www.xmpp.org/extensions/xep-0167.html#ns" << Jingle RTP Sessions
+     */
+    private void initFeatures() {
+	JingleManager.setJingleServiceEnabled();
+	ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(mAdaptee);
+	sdm.addFeature("http://jabber.org/protocol/disco#info");
+	// sdm.addFeature("http://jabber.org/protocol/nick");
+
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/service/XmppFacade.java	Fri Apr 03 14:18:10 2009 +0200
@@ -0,0 +1,77 @@
+package com.beem.project.beem.service;
+import android.os.RemoteException;
+
+import com.beem.project.beem.service.aidl.IChatManager;
+import com.beem.project.beem.service.aidl.IRoster;
+import com.beem.project.beem.service.aidl.IXmppConnection;
+import com.beem.project.beem.service.aidl.IXmppFacade;;
+
+/**
+ * This class is a facade for the Beem Service.
+ * @author darisk
+ */
+public class XmppFacade extends IXmppFacade.Stub {
+
+    private XmppConnectionAdapter mConnexion;
+
+    /**
+     * Constructor for XMPPFacade.
+     * @param connection the connection use by the facade
+     */
+    public XmppFacade(final XmppConnectionAdapter connection) {
+	this.mConnexion = connection;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void connectAsync() throws RemoteException {
+	// TODO Auto-generated method stub
+	mConnexion.connectAsync();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void connectSync() throws RemoteException {
+	// TODO Auto-generated method stub
+	mConnexion.connectSync();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public IXmppConnection createConnection() throws RemoteException {
+	// TODO Auto-generated method stub
+	return mConnexion;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void disconnect() throws RemoteException {
+	// TODO Auto-generated method stub
+	mConnexion.disconnect();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public IRoster getRoster() throws RemoteException {
+	return mConnexion.getRoster();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public IChatManager getChatManager() throws RemoteException {
+	return mConnexion.getChatManager();
+    }
+
+}
--- a/src/com/beem/project/beem/service/aidl/IXMPPFacade.aidl	Fri Apr 03 00:43:02 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-package com.beem.project.beem.service.aidl;
-
-import  com.beem.project.beem.service.aidl.IXmppConnection;
-import  com.beem.project.beem.service.aidl.IRoster;
-import  com.beem.project.beem.service.aidl.IChatManager;
-
-interface IXMPPFacade {
-
-    IXmppConnection createConnection();
-    
-    IRoster getRoster();
-    
-    void connectSync();
-    
-    void connectAsync();
-    
-    void disconnect();
-
-    IChatManager getChatManager();
-    
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/beem/project/beem/service/aidl/IXmppFacade.aidl	Fri Apr 03 14:18:10 2009 +0200
@@ -0,0 +1,21 @@
+package com.beem.project.beem.service.aidl;
+
+import  com.beem.project.beem.service.aidl.IXmppConnection;
+import  com.beem.project.beem.service.aidl.IRoster;
+import  com.beem.project.beem.service.aidl.IChatManager;
+
+interface IXmppFacade {
+
+    IXmppConnection createConnection();
+    
+    IRoster getRoster();
+    
+    void connectSync();
+    
+    void connectAsync();
+    
+    void disconnect();
+
+    IChatManager getChatManager();
+    
+}
--- a/src/com/beem/project/beem/ui/ContactList.java	Fri Apr 03 00:43:02 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java	Fri Apr 03 14:18:10 2009 +0200
@@ -22,12 +22,12 @@
 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.aidl.IXMPPFacade;
+import com.beem.project.beem.service.aidl.IXmppFacade;
 
 public class ContactList extends ExpandableListActivity {
 
     private static final String TAG = "CONTACTLIST_ACT";
-    private IXMPPFacade mService = null;
+    private IXmppFacade mService = null;
     private Handler mHandler;
     private BeemApplication mBeemApplication;