# HG changeset patch # User Philippe Lago # Date 1239804961 -7200 # Node ID 2320ab48e82928a4ce1730a475098e9edcec3ea0 # Parent e3e8bf4495906835f720d5f3f77e2691622d957e Bug d'affichage fixé et autre feature implementées diff -r e3e8bf449590 -r 2320ab48e829 res/layout/messagelist.xml --- a/res/layout/messagelist.xml Tue Apr 14 18:54:10 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ - - \ No newline at end of file diff -r e3e8bf449590 -r 2320ab48e829 res/layout/sendim.xml --- a/res/layout/sendim.xml Tue Apr 14 18:54:10 2009 +0200 +++ b/res/layout/sendim.xml Wed Apr 15 16:16:01 2009 +0200 @@ -25,13 +25,20 @@ android:layout_toRightOf="@id/sendimavatar" android:hint="@string/SendIMLoginHint"/> - - + + + + + + mMessages = new ArrayList(); - private ArrayAdapter mAdapter; + //private ArrayAdapter mAdapter; private SendIMDialogSmiley mSmyDialog; private SharedPreferences mSet; private SharedPreferences mGlobalSettings; @@ -52,7 +53,10 @@ private IMessageListener mMessageListener; private IChat mChat; private Drawable mAvatar; + private TextView mText; private TextView mLogin; + private ScrollView mScrolling; + private Boolean mSpeak; /** * Constructor. @@ -78,15 +82,17 @@ mSmyDialog = new SendIMDialogSmiley(this, mSet); mGlobalSettings = getSharedPreferences( getString(R.string.PreferenceFileName), MODE_PRIVATE); - mAdapter = new ArrayAdapter(this, R.layout.messagelist, + /*mAdapter = new ArrayAdapter(this, R.layout.messagelist, mMessages); - setListAdapter(mAdapter); + setListAdapter(mAdapter);*/ mToSend.setOnClickListener(this); mToSend.setOnKeyListener(this); mContact = getIntent().getParcelableExtra("contact"); setViewHeader(); + mText = (TextView) findViewById(R.id.sendimlist); + mScrolling = (ScrollView) findViewById(R.id.sendimscroll); } private void setViewHeader() @@ -128,6 +134,8 @@ * pendant la conversation */ private void sendText() { + if (mSpeak == null) + mSpeak = false; String text = mToSend.getText().toString(); String from = mGlobalSettings.getString( getString(R.string.PreferenceJID), "You"); @@ -140,7 +148,15 @@ // TODO Auto-generated catch block e.printStackTrace(); } - mAdapter.add(from + getString(R.string.SendIMSays) + text); + //mAdapter.add(from + getString(R.string.SendIMSays) + text); + if (!mSpeak) + mText.append(from + getString(R.string.SendIMSays) + text + "\n"); + else + mText.append(text + "\n"); + mToSend.setText(null); + mScrolling.fullScroll(ScrollView.FOCUS_DOWN); + mToSend.requestFocus(); + mSpeak = true; } } @@ -202,8 +218,26 @@ public void processMessage(IChat chat, Message msg) throws RemoteException { Log.i("LOG", "processMessage"); - mAdapter.add(mContact.getJID() + " " - + getString(R.string.SendIMSays) + msg.getBody()); + /*mAdapter.add(mContact.getJID() + " " + + getString(R.string.SendIMSays) + msg.getBody());*/ + + final Message m = msg; + mHandler.post(new Runnable() { + + @Override + public void run() { + if (m.getBody() != null) + { + if (!mSpeak) + mText.append(m.getBody() + "\n"); + else + mText.append(mContact.getJID() + " " + + getString(R.string.SendIMSays) + m.getBody() + "\n"); + mSpeak = false; + mScrolling.fullScroll(ScrollView.FOCUS_DOWN); + } + } + }); } } }