Feature #181
authornikita@nikita-lab
Sat, 20 Jun 2009 18:52:15 +0200
changeset 252 f9bbba863298
parent 251 fae2a16a1f28
child 253 8ccdc5cc81e2
Feature #181 Voila, c'est fait, grace à la classe Linkify de Android.
src/com/beem/project/beem/ui/ContactList.java
src/com/beem/project/beem/ui/SendIM.java
--- a/src/com/beem/project/beem/ui/ContactList.java	Sat Jun 20 18:01:09 2009 +0200
+++ b/src/com/beem/project/beem/ui/ContactList.java	Sat Jun 20 18:52:15 2009 +0200
@@ -19,6 +19,7 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
+import android.text.util.Linkify;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -318,6 +319,7 @@
 				v = (TextView) view.findViewById(R.id.contactlistmsgperso);
 				if (v != null) {
 					v.setText(curContact.getMsgState());
+					Linkify.addLinks(v, Linkify.WEB_URLS);
 				}
 
 				// TODO: Rajouter l'avatar du contact getAvatar() dans la classe
--- a/src/com/beem/project/beem/ui/SendIM.java	Sat Jun 20 18:01:09 2009 +0200
+++ b/src/com/beem/project/beem/ui/SendIM.java	Sat Jun 20 18:52:15 2009 +0200
@@ -14,6 +14,7 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.RemoteException;
+import android.text.util.Linkify;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.Menu;
@@ -98,11 +99,23 @@
 		mToSend.setOnClickListener(this);
 		mToSend.setOnKeyListener(this);
 		mLogin = (TextView) findViewById(R.id.sendimlogin);
-		mContact = new Contact(getIntent().getData());		 
-		setViewHeader();
+		mContact = new Contact(getIntent().getData());
 		mText = (TextView) findViewById(R.id.sendimlist);
 		mScrolling = (ScrollView) findViewById(R.id.sendimscroll);
 		mStatusText = (TextView) findViewById(R.id.sendimstatus);
+		setViewHeader();
+	}
+
+	/**
+	 * Set the header information in the window.
+	 */
+	private void setViewHeader() {
+		Drawable avatar = getResources().getDrawable(R.drawable.avatar);
+		ImageView imgV = (ImageView) findViewById(R.id.sendimavatar);
+		imgV.setImageDrawable(avatar);		
+		mStatusText.setTextSize(12);
+		mLogin.setText(mContact.getJID());
+		mLogin.setTextColor(getResources().getColor(R.color.white));
 	}
 
 	/**
@@ -232,6 +245,7 @@
 					mRoster.addRosterListener(new BeemRosterListener());
 					mContact.setStatus(mRoster.getPresence(mContact.getJID()));
 					mStatusText.setText(mContact.getMsgState());
+					Linkify.addLinks(mStatusText, Linkify.WEB_URLS);
 				}
 			} catch (RemoteException e) {
 				e.printStackTrace();
@@ -269,24 +283,7 @@
 				e.printStackTrace();
 			}
 		}
-	}
-
-	/**
-	 * Set the header information in the window.
-	 */
-	private void setViewHeader() {
-		Drawable avatar = getResources().getDrawable(R.drawable.avatar);
-		ImageView imgV = (ImageView) findViewById(R.id.sendimavatar);
-		imgV.setImageDrawable(avatar);
-		mLogin = (TextView) findViewById(R.id.sendimlogin);
-		mLogin.setText(mContact.getJID());
-		TextView status = (TextView) findViewById(R.id.sendimstatus);
-		status.setTextSize(12);
-		mLogin.setTextColor(getResources().getColor(R.color.white));
-		String statmsg = mContact.getMsgState();
-		if (statmsg != null)
-			status.setText(statmsg);
-	}
+	}	
 
 	/**
 	 * Show the message history.
@@ -368,14 +365,17 @@
 		@Override
 		public void onPresenceChanged(PresenceAdapter presence)
 		throws RemoteException {
-			mContact.setStatus(mRoster.getPresence(StringUtils.parseBareAddress(presence.getFrom())));
-			mHandler.post(new RunnableChange());
+			if (mContact.getJID().equals(StringUtils.parseBareAddress(presence.getFrom()))) {
+				mContact.setStatus(mRoster.getPresence(StringUtils.parseBareAddress(presence.getFrom())));
+				mHandler.post(new RunnableChange());
+			}
 		}
-		
+
 		private class RunnableChange implements Runnable {
 			@Override
 			public void run() {
 				mStatusText.setText(mContact.getMsgState());
+				Linkify.addLinks(mStatusText, Linkify.WEB_URLS);
 			}
 		}