# HG changeset patch # User nikita@nikita-lab # Date 1245516735 -7200 # Node ID f9bbba863298a86c8764a56c1ea56d7503652f07 # Parent fae2a16a1f28a298fdb6ff35d5057d047ec6a69b Feature #181 Voila, c'est fait, grace à la classe Linkify de Android. diff -r fae2a16a1f28 -r f9bbba863298 src/com/beem/project/beem/ui/ContactList.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 diff -r fae2a16a1f28 -r f9bbba863298 src/com/beem/project/beem/ui/SendIM.java --- 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); } }