From c40c8ee91001927f25824dc6766ba8df8f20a163 Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Fri, 22 Aug 2014 13:22:07 +0200 Subject: [PATCH] tiny redesign for private muc messages --- res/values/strings.xml | 4 +-- .../ui/ConversationFragment.java | 32 +++++++++++-------- .../ui/adapter/MessageAdapter.java | 18 +++++++---- 3 files changed, 31 insertions(+), 23 deletions(-) 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("");