diff --git a/res/values/strings.xml b/res/values/strings.xml
index 964017fbac..a69ad59adb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -441,12 +441,14 @@
%d new messages
Most recent from: %s
Encrypted message...
+ Media message: %s
(No subject)
Message delivery failed.
Failed to deliver message.
Error delivering message.
Mark all as read
Mark as read
+ Media message
Sorry, Quick Response is not yet supported by TextSecure!
diff --git a/src/org/thoughtcrime/securesms/notifications/MessageNotifier.java b/src/org/thoughtcrime/securesms/notifications/MessageNotifier.java
index f14a4b8078..27b4f083dd 100644
--- a/src/org/thoughtcrime/securesms/notifications/MessageNotifier.java
+++ b/src/org/thoughtcrime/securesms/notifications/MessageNotifier.java
@@ -51,6 +51,7 @@ import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientFactory;
import org.thoughtcrime.securesms.recipients.Recipients;
import org.thoughtcrime.securesms.service.KeyCachingService;
+import org.thoughtcrime.securesms.util.SpanUtil;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.textsecure.api.messages.TextSecureEnvelope;
@@ -339,7 +340,7 @@ public class MessageNotifier {
Recipient recipient = record.getIndividualRecipient();
Recipients recipients = record.getRecipients();
long threadId = record.getThreadId();
- SpannableString body = record.getDisplayBody();
+ CharSequence body = record.getDisplayBody();
Uri image = null;
Recipients threadRecipients = null;
@@ -348,8 +349,13 @@ public class MessageNotifier {
}
if (SmsDatabase.Types.isDecryptInProgressType(record.getType()) || !record.getBody().isPlaintext()) {
- body = new SpannableString(context.getString(R.string.MessageNotifier_encrypted_message));
- body.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, body.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ body = SpanUtil.italic(context.getString(R.string.MessageNotifier_encrypted_message));
+ } else if (record.isMms() && TextUtils.isEmpty(body)) {
+ body = SpanUtil.italic(context.getString(R.string.MessageNotifier_media_message));
+ } else if (record.isMms()) {
+ String message = context.getString(R.string.MessageNotifier_media_message_with_text, body);
+ int italicLength = message.length() - body.length();
+ body = SpanUtil.italic(message, italicLength);
}
notificationState.addNotification(new NotificationItem(recipient, recipients, threadRecipients, threadId, body, image));
diff --git a/src/org/thoughtcrime/securesms/util/SpanUtil.java b/src/org/thoughtcrime/securesms/util/SpanUtil.java
index cbe7080066..15a0b0c441 100644
--- a/src/org/thoughtcrime/securesms/util/SpanUtil.java
+++ b/src/org/thoughtcrime/securesms/util/SpanUtil.java
@@ -10,8 +10,12 @@ import android.text.style.StyleSpan;
public class SpanUtil {
public static CharSequence italic(CharSequence sequence) {
+ return italic(sequence, sequence.length());
+ }
+
+ public static CharSequence italic(CharSequence sequence, int length) {
SpannableString spannable = new SpannableString(sequence);
- spannable.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, sequence.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+ spannable.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannable;
}