Affichage du ChatState dans IM pas terrible
Formatage des messages avant affichage par string.format()
plus de chaine en dur type "\n"
--- a/res/layout/sendim.xml Wed Jun 24 13:04:52 2009 +0200
+++ b/res/layout/sendim.xml Wed Jun 24 19:23:00 2009 +0200
@@ -15,7 +15,12 @@
android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:id="@+id/sendimlogin"
android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:lines="1"
android:paddingLeft="10sp" />
+ <TextView android:id="@+id/sendimchatstate"
+ android:layout_width="fill_parent" android:layout_height="wrap_content"
+ android:lines="1" android:scrollHorizontally="true"
+ android:paddingLeft="15sp" />
<TextView android:id="@+id/sendimstatus"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:lines="1" android:scrollHorizontally="true"
--- a/res/values/strings.xml Wed Jun 24 13:04:52 2009 +0200
+++ b/res/values/strings.xml Wed Jun 24 19:23:00 2009 +0200
@@ -86,10 +86,12 @@
<!-- SendIM class -->
<string name="SendIMActTitle">Beem - Chat</string>
- <string name="SendIMSays"> %s says :\n</string>
- <string name="SendIMYouSay">You say :\n</string>
+ <string name="SendIMSays"> %s says :\n%s\n</string>
+ <string name="SendIMYouSay">You say :\n%s\n</string>
+ <string name="SendIMSameSpeaker">%s\n</string>
<string name="SendIMToSendHint">Tip text here</string>
<string name="SendIMState">Is : </string>
+ <string name="SendIMErrorMsg">Error : %s\n</string>
<string name="SendIMFrom">and is speaking from : </string>
<string name="SendIMSmiley">Insert a smiley</string>
<string name="SendIMLoginHint">login</string>
--- a/src/com/beem/project/beem/ui/SendIM.java Wed Jun 24 13:04:52 2009 +0200
+++ b/src/com/beem/project/beem/ui/SendIM.java Wed Jun 24 19:23:00 2009 +0200
@@ -62,6 +62,7 @@
private IChat mChat;
private TextView mText;
private TextView mLogin;
+ private TextView mChatState;
private ScrollView mScrolling;
private char mSpeak;
@@ -102,6 +103,7 @@
mToSend.setOnClickListener(this);
mToSend.setOnKeyListener(this);
mLogin = (TextView) findViewById(R.id.sendimlogin);
+ mChatState = (TextView) findViewById(R.id.sendimchatstate);
try {
mContact = new Contact(getIntent().getData());
if (mRoster != null)
@@ -305,11 +307,11 @@
// INTERDICTION !
mChat.sendMessage(msg);
if (mSpeak != 1)
- mText
- .append(getString(R.string.SendIMYouSay) + text
- + '\n');
+ mText.append(String.format(
+ getString(R.string.SendIMYouSay), text));
else
- mText.append(text + "\n");
+ mText.append(String.format(
+ getString(R.string.SendIMSameSpeaker), text));
mToSend.setText(null);
mScrolling.fullScroll(ScrollView.FOCUS_DOWN);
mToSend.requestFocus();
@@ -333,17 +335,25 @@
String from = message.getFrom();
if (from == null) {
if (mSpeak != 1)
- mText.append(getString(R.string.SendIMYouSay));
+ mText.append(String
+ .format(getString(R.string.SendIMYouSay), message
+ .getBody()));
+ else
+ mText.append(String.format(
+ getString(R.string.SendIMSameSpeaker), message
+ .getBody()));
mSpeak = 1;
} else {
if (mSpeak != 2) {
String str = String.format(getString(R.string.SendIMSays),
- mContactName);
+ mContactName, message.getBody());
mText.append(str);
- }
+ } else
+ mText.append(String.format(
+ getString(R.string.SendIMSameSpeaker), message
+ .getBody()));
mSpeak = 2;
}
- mText.append(message.getBody() + '\n');
}
mScrolling.fullScroll(ScrollView.FOCUS_DOWN);
}
@@ -424,12 +434,12 @@
}
@Override
- public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException {
+ public void onEntryDeleteFromGroup(String group, String jid)
+ throws RemoteException {
// TODO Auto-generated method stub
-
+
}
-
}
/**
@@ -448,19 +458,27 @@
if (chat != mChat)
return;
final Message m = msg;
+ Log.d("Message Type", "Le type du message : " + m.getType());
mHandler.post(new Runnable() {
@Override
public void run() {
if (m.getBody() != null) {
- if (mSpeak == 2)
- mText.append(m.getBody() + "\n");
+ if (m.getType() == Message.MSG_TYPE_ERROR) {
+ mText.append(String.format(
+ getString(R.string.SendIMErrorMsg), m
+ .getBody()));
+ mSpeak = 0;
+ } else if (mSpeak == 2)
+ mText.append(String.format(
+ getString(R.string.SendIMSameSpeaker), m
+ .getBody()));
else {
-
- String str = String
- .format(getString(R.string.SendIMSays), mContactName);
+
+ String str = String.format(
+ getString(R.string.SendIMSays),
+ mContactName, m.getBody());
mText.append(str);
- mText.append(m.getBody() + "\n");
}
mScrolling.fullScroll(ScrollView.FOCUS_DOWN);
mToSend.requestFocus();
@@ -475,8 +493,18 @@
*/
@Override
public void stateChanged(IChat chat) throws RemoteException {
- // TODO: a integrer dans l'ui
- // Log.d(TAG, "state changed");
+ if (chat != mChat)
+ return;
+ final String state = chat.getState();
+ Log.d("ChatState", "Action du correspondant : <--- "
+ + chat.getState() + " --->");
+ mHandler.post(new Runnable() {
+
+ @Override
+ public void run() {
+ mChatState.setText(state);
+ }
+ });
}
}