petite maj sur le RosterAdapter
authornikita@nikita-rack
Sat, 04 Apr 2009 08:26:31 +0200
changeset 63 edd2c2ffe3ac
parent 61 08cfba11099a
child 64 41ceca987a6c
petite maj sur le RosterAdapter
src/com/beem/project/beem/jingle/RTPReceiver.java
src/com/beem/project/beem/jingle/Receiver.java
src/com/beem/project/beem/provider/ContactProvider.java
src/com/beem/project/beem/service/RosterAdapter.java
src/com/beem/project/beem/service/XMPPConnectionAdapter.java
--- a/src/com/beem/project/beem/jingle/RTPReceiver.java	Fri Apr 03 18:50:13 2009 +0200
+++ b/src/com/beem/project/beem/jingle/RTPReceiver.java	Sat Apr 04 08:26:31 2009 +0200
@@ -56,7 +56,7 @@
 
 	@Override
 	public void receiveData(DataFrame frame, Participant participant) {
-		byte[] data = frame.getConcatenatedData();		
+		//byte[] data = frame.getConcatenatedData();		
 	}
 
 	@Override
--- a/src/com/beem/project/beem/jingle/Receiver.java	Fri Apr 03 18:50:13 2009 +0200
+++ b/src/com/beem/project/beem/jingle/Receiver.java	Sat Apr 04 08:26:31 2009 +0200
@@ -2,10 +2,8 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.ServerSocket;
 import java.net.Socket;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import org.jivesoftware.smack.ConnectionConfiguration;
 import org.jivesoftware.smack.XMPPConnection;
@@ -53,8 +51,8 @@
 	    // Le client demande les services dispo en face a son roster
 	    // il doit en suite fournir lui meme une liste de feature
 	    
-	    DiscoverInfo di = sdm.discoverInfo("test@nikita-rack/pidgin");
-	    DiscoverInfo di2 = sdm.discoverInfo("nikita@nikita-rack/Telepathy");
+	    //DiscoverInfo di = sdm.discoverInfo("test@nikita-rack/pidgin");
+	    //DiscoverInfo di2 = sdm.discoverInfo("nikita@nikita-rack/Telepathy");
 
 	} catch (XMPPException e) {
 	    // TODO Auto-generated catch block
@@ -76,20 +74,16 @@
 		System.out.println("Jingle Session request from "+request.getFrom());
 		try {
 		    in = request.accept();
-		    // TODO configure in
 		    in.addListener(new JingleSessionListener() {
 
 			@Override
 			public void sessionRedirected(String redirection,
 			    JingleSession jingleSession) {
-			    // TODO Auto-generated method stub
-
 			}
 
 			@Override
 			public void sessionMediaReceived(JingleSession jingleSession,
 			    String participant) {
-			    // TODO Auto-generated method stub
 			    System.out.println("Session Media received from " + participant);
 			}
 
@@ -97,7 +91,6 @@
 			public void sessionEstablished(PayloadType pt,
 			    TransportCandidate remoteCandidate,
 			    TransportCandidate localCandidate, JingleSession jingleSession) {
-			    // TODO Auto-generated method stub
 			    System.out.println("Session established");
 			    try{
 				System.out.println("Je recois sur " + remoteCandidate.getIp() + ":" + remoteCandidate.getPort() );
@@ -123,13 +116,11 @@
 
 			@Override
 			public void sessionClosed(String reason, JingleSession jingleSession) {
-			    // TODO Auto-generated method stub
 			    System.out.println("Session "+ jingleSession.getResponder() +"closedd because "+ reason);
 			}
 		    });
 		    in.startIncoming();
 		} catch (XMPPException e) {
-		    // TODO Auto-generated catch block
 		    e.printStackTrace();
 		}
 	    }
@@ -161,7 +152,6 @@
      * @throws InterruptedException 
      */
     public static void main(String[] args) throws InterruptedException {
-	// TODO Auto-generated method stub
 	Receiver rec = new Receiver("test2", "test2");
 	System.out.println("Receiver initialized");
 
--- a/src/com/beem/project/beem/provider/ContactProvider.java	Fri Apr 03 18:50:13 2009 +0200
+++ b/src/com/beem/project/beem/provider/ContactProvider.java	Sat Apr 04 08:26:31 2009 +0200
@@ -9,7 +9,6 @@
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.UriMatcher;
-import android.content.res.Resources;
 import android.database.Cursor;
 import android.database.SQLException;
 import android.database.sqlite.SQLiteDatabase;
--- a/src/com/beem/project/beem/service/RosterAdapter.java	Fri Apr 03 18:50:13 2009 +0200
+++ b/src/com/beem/project/beem/service/RosterAdapter.java	Sat Apr 04 08:26:31 2009 +0200
@@ -16,7 +16,6 @@
 import org.jivesoftware.smack.XMPPException;
 import org.jivesoftware.smack.packet.Presence;
 
-import com.beem.project.beem.service.aidl.IBeemConnectionListener;
 import com.beem.project.beem.service.aidl.IBeemRosterListener;
 
 import android.os.RemoteCallbackList;
@@ -34,64 +33,9 @@
 	private RemoteCallbackList<IBeemRosterListener> mRemoteRosListeners = 
 		new RemoteCallbackList<IBeemRosterListener>();
 	private Map<String, Contact> mContacts = new HashMap<String, Contact>();
-	private RosterListener mRosterListener = new RosterListener() {
-		@Override
-		public void presenceChanged(Presence presence) {
-			String user = presence.getFrom();
-			Presence bestPresence = mAdaptee.getPresence(user);
-			Contact c = mContacts.get(user);
-			if (c == null) {
-				c = new Contact(user);
-				mContacts.put(user, c);
-			}
-			int status;
-			if (bestPresence.getType().equals(Presence.Type.unavailable))
-				status = Contact.CONTACT_STATUS_DISCONNECT;
-			else {
-				switch (bestPresence.getMode()) {
-				case available:
-					status = Contact.CONTACT_STATUS_AVAILABLE;
-					break;
-				case away:
-					status = Contact.CONTACT_STATUS_AWAY;
-					break;
-				case chat:
-					status = Contact.CONTACT_STATUS_AVAILABLE_FOR_CHAT;
-					break;
-				case dnd:
-					status = Contact.CONTACT_STATUS_BUSY;
-					break;
-				case xa:
-					status = Contact.CONTACT_STATUS_UNAVAILABLE;
-					break;
-				default:
-					Log.e("RosterAdapter", "Status mode non gere");
-				status = Contact.CONTACT_STATUS_DISCONNECT;
-				break;
-				}
-			}
-			c.setStatus(status);
-		}
-
-		@Override
-		public void entriesUpdated(Collection<String> arg0) {
-			// TODO Auto-generated method stub
-
-		}
-
-		@Override
-		public void entriesDeleted(Collection<String> arg0) {
-			// TODO Auto-generated method stub
-
-		}
-
-		@Override
-		public void entriesAdded(Collection<String> arg0) {
-			// TODO Auto-generated method stub
-
-		}
-	};
-
+	
+	private RosterListenerAdapter mRosterListener = new RosterListenerAdapter();
+	
 	/**
 	 * Constructor.
 	 * @param roster the roster to adapt
@@ -111,7 +55,6 @@
 	 */
 	@Override
 	public void createGroup(String groupname) throws RemoteException {
-		// TODO Auto-generated method stub
 		mAdaptee.createGroup(groupname);
 	}
 
@@ -232,9 +175,46 @@
 
 		@Override
 		public void presenceChanged(Presence presence) {
+			
+			/* gestion du roster coter service */
+			String user = presence.getFrom();
+			Presence bestPresence = mAdaptee.getPresence(user);
+			Contact c = mContacts.get(user);
+			if (c == null) {
+				c = new Contact(user);
+				mContacts.put(user, c);
+			}
+			int status;
+			if (bestPresence.getType().equals(Presence.Type.unavailable))
+				status = Contact.CONTACT_STATUS_DISCONNECT;
+			else {
+				switch (bestPresence.getMode()) {
+				case available:
+					status = Contact.CONTACT_STATUS_AVAILABLE;
+					break;
+				case away:
+					status = Contact.CONTACT_STATUS_AWAY;
+					break;
+				case chat:
+					status = Contact.CONTACT_STATUS_AVAILABLE_FOR_CHAT;
+					break;
+				case dnd:
+					status = Contact.CONTACT_STATUS_BUSY;
+					break;
+				case xa:
+					status = Contact.CONTACT_STATUS_UNAVAILABLE;
+					break;
+				default:
+					Log.e("RosterAdapter", "Status mode non gere");
+				status = Contact.CONTACT_STATUS_DISCONNECT;
+				break;
+				}
+			}
+			c.setStatus(status);			
+			
+			/* redispatch vers les IBeemRosterListener */
 			final int n = mRemoteRosListeners.beginBroadcast();
-
-			List<String> tab = null;
+			
 			for (int i = 0; i < n; i++) {
 				IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
 				try {
--- a/src/com/beem/project/beem/service/XMPPConnectionAdapter.java	Fri Apr 03 18:50:13 2009 +0200
+++ b/src/com/beem/project/beem/service/XMPPConnectionAdapter.java	Sat Apr 04 08:26:31 2009 +0200
@@ -28,7 +28,6 @@
 	private static final String TAG = "XMPPConnectionAdapter";
 	private XMPPConnection mAdaptee;
 	private IChatManager mChatManager;
-	private BeemException mLastException;
 	private String mLogin;
 	private String mPassword;
 	private RosterAdapter mRoster;
@@ -36,6 +35,7 @@
 	private RemoteCallbackList<IBeemConnectionListener> mRemoteConnListeners =
 		new RemoteCallbackList<IBeemConnectionListener>();
 	private ConnexionListenerAdapter mConListener = new ConnexionListenerAdapter();
+	private Object mLastException;
 
 	/**
 	 * Constructor.
@@ -80,7 +80,7 @@
 			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
+			this.initFeatures(); // pour declarer les features xmpp qu'on supporte
 			mLastException = null;
 			triggerAsynchronousConnectEvent();
 			return true;
@@ -165,7 +165,18 @@
 	private void triggerAsynchronousConnectEvent() {
 		mConListener.onConnect();
 	}
+	
+	/**
+	 * enregistre les features dispo dans notre version Liste de features que Telepathy supporte.
+	 */
+	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");
 
+	}
+	
 	/**
 	 * Listener for XMPP connection events.
 	 * It will calls the remote listeners for connexion events.
@@ -297,36 +308,5 @@
 			}
 			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");
-
-	}
-
 }