Feature #181
Voila, c'est fait, grace à la classe Linkify de Android.
--- 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);
}
}