Modifies notification for MUC conversations
Minor fixes Replaces html.fromHTML with SpannableString
This commit is contained in:
parent
b0ada55b28
commit
87f0c4a646
|
@ -5,6 +5,7 @@ import android.app.PendingIntent;
|
|||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Typeface;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.SystemClock;
|
||||
|
@ -14,6 +15,8 @@ import android.support.v4.app.NotificationCompat.Builder;
|
|||
import android.support.v4.app.NotificationManagerCompat;
|
||||
import android.support.v4.app.RemoteInput;
|
||||
import android.text.Html;
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.StyleSpan;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
|
||||
|
@ -262,12 +265,16 @@ public class NotificationService {
|
|||
if (messages.size() > 0) {
|
||||
conversation = messages.get(0).getConversation();
|
||||
final String name = conversation.getName();
|
||||
SpannableString styledString;
|
||||
if (Config.HIDE_MESSAGE_TEXT_IN_NOTIFICATION) {
|
||||
int count = messages.size();
|
||||
style.addLine(Html.fromHtml("<b>"+name+"</b>: "+mXmppConnectionService.getResources().getQuantityString(R.plurals.x_messages,count,count)));
|
||||
styledString = new SpannableString(name + ": " + mXmppConnectionService.getResources().getQuantityString(R.plurals.x_messages,count,count));
|
||||
styledString.setSpan(new StyleSpan(Typeface.BOLD), 0, name.length(), 0);
|
||||
style.addLine(styledString);
|
||||
} else {
|
||||
style.addLine(Html.fromHtml("<b>" + name + "</b>: "
|
||||
+ UIHelper.getMessagePreview(mXmppConnectionService, messages.get(0)).first));
|
||||
styledString = new SpannableString(name + ": " + UIHelper.getMessagePreview(mXmppConnectionService, messages.get(0)).first);
|
||||
styledString.setSpan(new StyleSpan(Typeface.BOLD), 0, name.length(), 0);
|
||||
style.addLine(styledString);
|
||||
}
|
||||
names.append(name);
|
||||
names.append(", ");
|
||||
|
@ -388,8 +395,30 @@ public class NotificationService {
|
|||
}
|
||||
builder.setStyle(messagingStyle);
|
||||
} else {
|
||||
if(messages.get(0).getConversation().getMode() == Conversation.MODE_SINGLE) {
|
||||
builder.setStyle(new NotificationCompat.BigTextStyle().bigText(getMergedBodies(messages)));
|
||||
builder.setContentText(UIHelper.getMessagePreview(mXmppConnectionService, messages.get((messages.size()-1))).first);
|
||||
builder.setContentText(UIHelper.getMessagePreview(mXmppConnectionService, messages.get((messages.size() - 1))).first);
|
||||
}
|
||||
else {
|
||||
final NotificationCompat.InboxStyle style = new NotificationCompat.InboxStyle();
|
||||
SpannableString styledString;
|
||||
for (Message message : messages) {
|
||||
final String name = UIHelper.getMessageDisplayName(message);
|
||||
styledString = new SpannableString(name + ": " + message.getBody());
|
||||
styledString.setSpan(new StyleSpan(Typeface.BOLD), 0, name.length(), 0);
|
||||
style.addLine(styledString);
|
||||
}
|
||||
builder.setStyle(style);
|
||||
if(messages.size() == 1) {
|
||||
final String name = UIHelper.getMessageDisplayName(messages.get(0));
|
||||
styledString = new SpannableString(name + ": " + messages.get(0).getBody());
|
||||
styledString.setSpan(new StyleSpan(Typeface.BOLD), 0, name.length(), 0);
|
||||
builder.setContentText(styledString);
|
||||
}
|
||||
else {
|
||||
builder.setContentText(messages.size() + " " + mXmppConnectionService.getString(R.string.unread_conversations));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue