tiny redesign for private muc messages

This commit is contained in:
iNPUTmice 2014-08-22 13:22:07 +02:00
parent 4875b52f09
commit c40c8ee910
3 changed files with 31 additions and 23 deletions

View file

@ -279,8 +279,8 @@
<string name="error_saving_avatar">Could not save avatar to disk</string>
<string name="or_long_press_for_default">(Or long press to bring back default)</string>
<string name="error_publish_avatar_no_server_support">Your server does not support the publication of avatars</string>
<string name="private_message">in private</string>
<string name="private_message_to">in private to %s</string>
<string name="private_message">whispered</string>
<string name="private_message_to">to %s</string>
<string name="send_private_message_to">Send private message to %s</string>
<string name="connect">Connect</string>
<string name="account_already_exists">This account does already exist</string>

View file

@ -187,6 +187,9 @@ public class ConversationFragment extends Fragment {
}
public void updateChatMsgHint() {
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));
@ -201,6 +204,7 @@ public class ConversationFragment extends Fragment {
break;
}
}
}
@Override
public View onCreateView(final LayoutInflater inflater,
@ -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) {

View file

@ -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<Message> {
if (message.getType() != Message.TYPE_PRIVATE) {
viewHolder.messageBody.setText(message.getBody().trim());
} else {
StringBuilder builder = new StringBuilder();
builder.append(message.getBody().trim());
builder.append("&nbsp;<b><i>(");
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<Message> {
} 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(")</i></b>");
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("");