le commit apres le merge j'apprends
authorPhilippe Lago <lago_p@epitech.net>
Wed, 08 Apr 2009 00:12:24 +0200
changeset 85 7d0e36aa1be5
parent 84 9a4dbd7fe546 (current diff)
parent 83 2e6e98e9f8ef (diff)
child 91 d8c5c3191491
le commit apres le merge j'apprends
--- 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" >
 
         <ImageView android:id="@+id/contactliststatus"
-        android:layout_weight="5"
+        	android:layout_weight="5"
         	android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:gravity="center_vertical" />
--- 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;
+		}
 	    }
 	}
     }
--- 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<String> addresses)
+		throws RemoteException {
+	    Log.i(TAG, "ENTRIES ADDED");
+	    
+	}
+	@Override
+	public void onEntriesDeleted(List<String> addresses)
+		throws RemoteException {
+	    Log.i(TAG, "ENTRIES DEL");
+	    
+	}
+	@Override
+	public void onEntriesUpdated(List<String> 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