Affichage du ChatState dans IM pas terrible
authorPhilippe Lago <lago_p@epitech.net>
Wed, 24 Jun 2009 19:23:00 +0200
changeset 295 66c7566e4caa
parent 288 b4112a39526c
child 296 c7c77413f8f2
Affichage du ChatState dans IM pas terrible Formatage des messages avant affichage par string.format() plus de chaine en dur type "\n"
res/layout/sendim.xml
res/values/strings.xml
src/com/beem/project/beem/ui/SendIM.java
--- 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);
+		}
+	    });
 	}
     }