diff --git a/res/values/strings.xml b/res/values/strings.xml
index 573cc04bd..f11b47054 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -279,8 +279,8 @@
Could not save avatar to disk
(Or long press to bring back default)
Your server does not support the publication of avatars
- in private
- in private to %s
+ whispered
+ to %s
Send private message to %s
Connect
This account does already exist
diff --git a/src/eu/siacs/conversations/ui/ConversationFragment.java b/src/eu/siacs/conversations/ui/ConversationFragment.java
index 1270d23ad..b7fcbae4a 100644
--- a/src/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/eu/siacs/conversations/ui/ConversationFragment.java
@@ -187,18 +187,22 @@ public class ConversationFragment extends Fragment {
}
public void updateChatMsgHint() {
- switch (conversation.getNextEncryption()) {
- case Message.ENCRYPTION_NONE:
- mEditMessage.setHint(getString(R.string.send_plain_text_message));
- break;
- case Message.ENCRYPTION_OTR:
- mEditMessage.setHint(getString(R.string.send_otr_message));
- break;
- case Message.ENCRYPTION_PGP:
- mEditMessage.setHint(getString(R.string.send_pgp_message));
- break;
- default:
- break;
+ if (conversation.getNextPresence() != null) {
+ this.mEditMessage.setHint(getString(R.string.send_private_message_to,conversation.getNextPresence()));
+ } else {
+ switch (conversation.getNextEncryption()) {
+ case Message.ENCRYPTION_NONE:
+ mEditMessage.setHint(getString(R.string.send_plain_text_message));
+ break;
+ case Message.ENCRYPTION_OTR:
+ mEditMessage.setHint(getString(R.string.send_otr_message));
+ break;
+ case Message.ENCRYPTION_PGP:
+ mEditMessage.setHint(getString(R.string.send_pgp_message));
+ break;
+ default:
+ break;
+ }
}
}
@@ -270,9 +274,9 @@ public class ConversationFragment extends Fragment {
}
protected void privateMessageWith(String counterpart) {
- this.mEditMessage.setHint(getString(R.string.send_private_message_to,counterpart));
this.mEditMessage.setText("");
this.conversation.setNextPresence(counterpart);
+ updateChatMsgHint();
}
protected void highlightInConference(String nick) {
@@ -328,7 +332,6 @@ public class ConversationFragment extends Fragment {
int position = mEditMessage.length();
Editable etext = mEditMessage.getText();
Selection.setSelection(etext, position);
- updateMessages();
if (activity.getSlidingPaneLayout().isSlideable()) {
if (!activity.shouldPaneBeOpen()) {
activity.getSlidingPaneLayout().closePane();
@@ -342,6 +345,7 @@ public class ConversationFragment extends Fragment {
if (this.conversation.getMode() == Conversation.MODE_MULTI) {
conversation.setNextPresence(null);
}
+ updateMessages();
}
private void decryptMessage(Message message) {
diff --git a/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java
index 34fea41f8..72587f990 100644
--- a/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java
+++ b/src/eu/siacs/conversations/ui/adapter/MessageAdapter.java
@@ -15,6 +15,10 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Typeface;
import android.text.Html;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.style.ForegroundColorSpan;
+import android.text.style.StyleSpan;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.ViewGroup;
@@ -210,11 +214,9 @@ public class MessageAdapter extends ArrayAdapter {
if (message.getType() != Message.TYPE_PRIVATE) {
viewHolder.messageBody.setText(message.getBody().trim());
} else {
- StringBuilder builder = new StringBuilder();
- builder.append(message.getBody().trim());
- builder.append(" (");
+ String privateMarker;
if (message.getStatus() <= Message.STATUS_RECIEVED) {
- builder.append(activity.getString(R.string.private_message));
+ privateMarker = activity.getString(R.string.private_message);
} else {
String to;
if (message.getPresence() != null) {
@@ -222,10 +224,12 @@ public class MessageAdapter extends ArrayAdapter {
} else {
to = message.getCounterpart();
}
- builder.append(activity.getString(R.string.private_message_to, to));
+ privateMarker = activity.getString(R.string.private_message_to, to);
}
- builder.append(")");
- viewHolder.messageBody.setText(Html.fromHtml(builder.toString()));
+ SpannableString span = new SpannableString(privateMarker+" "+message.getBody());
+ span.setSpan(new ForegroundColorSpan(activity.getSecondaryTextColor()), 0, privateMarker.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ span.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, privateMarker.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ viewHolder.messageBody.setText(span);
}
} else {
viewHolder.messageBody.setText("");