# HG changeset patch # User nikita@localhost # Date 1245686849 -7200 # Node ID 0548b407992ac1a485131aa0e2391f5b4a92cacc # Parent e082fd525147a40c3a0bcc100e79fbb63cfd68a3# Parent 0ce1e306fdd378d2f20eaab2ba18e528cf8ec63d debut de la gestion de la PrivacyList diff -r 0ce1e306fdd3 -r 0548b407992a src/com/beem/project/beem/service/PrivacyListAdapter.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/com/beem/project/beem/service/PrivacyListAdapter.java Mon Jun 22 18:07:29 2009 +0200 @@ -0,0 +1,39 @@ +/** + * + */ +package com.beem.project.beem.service; + +import java.util.List; + +import org.jivesoftware.smack.PrivacyListListener; +import org.jivesoftware.smack.PrivacyListManager; +import org.jivesoftware.smack.packet.PrivacyItem; + +/** + * @author nikita + * + */ +public class PrivacyListAdapter { + private PrivacyListManager mAdaptee = null; + + + public PrivacyListAdapter(PrivacyListManager manager) { + mAdaptee = manager; + } + + class MyPrivacyListListener implements PrivacyListListener { + + @Override + public void setPrivacyList(String listName, List listItem) { + // TODO Auto-generated method stub + + } + + @Override + public void updatedPrivacyList(String listName) { + // TODO Auto-generated method stub + + } + + } +} diff -r 0ce1e306fdd3 -r 0548b407992a src/com/beem/project/beem/service/XmppConnectionAdapter.java --- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java Mon Jun 22 15:48:56 2009 +0200 +++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java Mon Jun 22 18:07:29 2009 +0200 @@ -5,6 +5,7 @@ import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.ConnectionListener; +import org.jivesoftware.smack.PrivacyListManager; import org.jivesoftware.smack.Roster; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; @@ -28,6 +29,182 @@ */ public class XmppConnectionAdapter extends IXmppConnection.Stub { + private static final String TAG = "XMPPConnectionAdapter"; + private XMPPConnection mAdaptee; + private IChatManager mChatManager; + private String mLogin; + private String mPassword; + private RosterAdapter mRoster; + private PrivacyListAdapter mPrivacyList; + private BeemService mService; + private RemoteCallbackList mRemoteConnListeners = new RemoteCallbackList(); + + private ConnexionListenerAdapter mConListener = new ConnexionListenerAdapter(); + + /** + * 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, + BeemService service) { + this(new XMPPConnection(config), login, password, service); + } + + /** + * 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, + BeemService service) { + this(new XMPPConnection(serviceName), login, password, service); + } + + /** + * 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, + BeemService service) { + mAdaptee = con; + mLogin = login; + mPassword = password; + mService = service; + } + + /** + * {@inheritDoc} + */ + @Override + public void addConnectionListener(IBeemConnectionListener listen) throws RemoteException { + if (listen != null) + mRemoteConnListeners.register(listen); + } + + /** + * {@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 boolean connectSync() throws RemoteException { + try { + mAdaptee.connect(); + mAdaptee.addConnectionListener(mConListener); + mAdaptee.login(mLogin, mPassword, "BEEM"); + + mChatManager = new BeemChatManager(mAdaptee.getChatManager(), mService); + // TODO find why this cause a null pointer exception + this.initFeatures(); // pour declarer les features xmpp qu'on supporte + mPrivacyList = new PrivacyListAdapter(PrivacyListManager.getInstanceFor(mAdaptee)); + ChatStateManager.getInstance(mAdaptee); + triggerAsynchronousConnectEvent(); + return true; + } catch (XMPPException e) { + Log.e(TAG, "Error while connecting", e); + mConListener.connectionFailed("Error On Connection"); + } + return false; + } + + /** + * {@inheritDoc} + */ + @Override + public boolean disconnect() { + if (mAdaptee != null && mAdaptee.isConnected()) + mAdaptee.disconnect(); + return true; + } + + public XMPPConnection getAdaptee() { + return mAdaptee; + } + + /** + * {@inheritDoc} + */ + @Override + public IChatManager getChatManager() throws RemoteException { + return mChatManager; + } + + public BeemService getContext() { + return mService; + } + + /** + * {@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; + } + + /** + * enregistre les features dispo dans notre version Liste de features que Telepathy supporte. + */ + private void initFeatures() { + ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(mAdaptee); + if (sdm == null) + sdm = new ServiceDiscoveryManager(mAdaptee); + sdm.addFeature("http://jabber.org/protocol/disco#info"); + JingleManager.setJingleServiceEnabled(); + // sdm.addFeature("http://jabber.org/protocol/nick"); + + } + + /** + * Returns true if currently authenticated by successfully calling the login method. + * @return true when successfully authenticated + */ + public boolean isAuthentificated() { + return mAdaptee.isAuthenticated(); + } + + /** + * {@inheritDoc} + */ + @Override + public void removeConnectionListener(IBeemConnectionListener listen) throws RemoteException { + if (listen != null) + mRemoteConnListeners.unregister(listen); + } + + /** + * Trigger Connection event. + */ + private void triggerAsynchronousConnectEvent() { + mConListener.onConnect(); + } /** * Listener for XMPP connection events. It will calls the remote listeners for connexion events. * @author darisk @@ -38,7 +215,6 @@ * Defaut constructor. */ public ConnexionListenerAdapter() { - // TODO Auto-generated constructor stub } /** @@ -180,180 +356,4 @@ } } - private static final String TAG = "XMPPConnectionAdapter"; - private XMPPConnection mAdaptee; - private IChatManager mChatManager; - private String mLogin; - private String mPassword; - private RosterAdapter mRoster; - - private BeemService mService; - private RemoteCallbackList mRemoteConnListeners = new RemoteCallbackList(); - - private ConnexionListenerAdapter mConListener = new ConnexionListenerAdapter(); - - /** - * 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, - BeemService service) { - this(new XMPPConnection(config), login, password, service); - } - - /** - * 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, - BeemService service) { - this(new XMPPConnection(serviceName), login, password, service); - } - - /** - * 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, - BeemService service) { - mAdaptee = con; - mLogin = login; - mPassword = password; - mService = service; - } - - /** - * {@inheritDoc} - */ - @Override - public void addConnectionListener(IBeemConnectionListener listen) throws RemoteException { - if (listen != null) - mRemoteConnListeners.register(listen); - } - - /** - * {@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 boolean connectSync() throws RemoteException { - try { - mAdaptee.connect(); - mAdaptee.addConnectionListener(mConListener); - mAdaptee.login(mLogin, mPassword, "BEEM"); - - mChatManager = new BeemChatManager(mAdaptee.getChatManager(), mService); - // TODO find why this cause a null pointer exception - this.initFeatures(); // pour declarer les features xmpp qu'on supporte - ChatStateManager.getInstance(mAdaptee); - triggerAsynchronousConnectEvent(); - return true; - } catch (XMPPException e) { - Log.e(TAG, "Error while connecting", e); - mConListener.connectionFailed("Error On Connection"); - } - return false; - } - - /** - * {@inheritDoc} - */ - @Override - public boolean disconnect() { - if (mAdaptee != null && mAdaptee.isConnected()) - mAdaptee.disconnect(); - return true; - } - - public XMPPConnection getAdaptee() { - return mAdaptee; - } - - /** - * {@inheritDoc} - */ - @Override - public IChatManager getChatManager() throws RemoteException { - return mChatManager; - } - - public BeemService getContext() { - return mService; - } - - /** - * {@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; - } - - /** - * enregistre les features dispo dans notre version Liste de features que Telepathy supporte. - */ - private void initFeatures() { - ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(mAdaptee); - if (sdm == null) - sdm = new ServiceDiscoveryManager(mAdaptee); - sdm.addFeature("http://jabber.org/protocol/disco#info"); - JingleManager.setJingleServiceEnabled(); - // sdm.addFeature("http://jabber.org/protocol/nick"); - - } - - /** - * Returns true if currently authenticated by successfully calling the login method. - * @return true when successfully authenticated - */ - public boolean isAuthentificated() { - return mAdaptee.isAuthenticated(); - } - - /** - * {@inheritDoc} - */ - @Override - public void removeConnectionListener(IBeemConnectionListener listen) throws RemoteException { - if (listen != null) - mRemoteConnListeners.unregister(listen); - } - - /** - * Trigger Connection event. - */ - private void triggerAsynchronousConnectEvent() { - mConListener.onConnect(); - } - }