diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0e6e04f34..4463c2547 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -975,4 +975,6 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
Debug logging to Android logging system enabled
+ » %s
+ › %s
diff --git a/src/com/fsck/k9/activity/MessageInfoHolder.java b/src/com/fsck/k9/activity/MessageInfoHolder.java
index ee9ef0127..71719563c 100644
--- a/src/com/fsck/k9/activity/MessageInfoHolder.java
+++ b/src/com/fsck/k9/activity/MessageInfoHolder.java
@@ -23,6 +23,8 @@ public class MessageInfoHolder
public boolean downloaded;
public boolean partially_downloaded;
public boolean dirty;
+ public boolean toMe;
+ public boolean ccMe;
public Message message;
public FolderInfoHolder folder;
public boolean selected;
diff --git a/src/com/fsck/k9/activity/MessageList.java b/src/com/fsck/k9/activity/MessageList.java
index 265010e94..ce6b2cbc0 100644
--- a/src/com/fsck/k9/activity/MessageList.java
+++ b/src/com/fsck/k9/activity/MessageList.java
@@ -2678,25 +2678,28 @@ public class MessageList
* compose a custom view containing the preview and the
* from.
*/
- holder.preview.setText(new SpannableStringBuilder(message.sender).append(" ").append(message.preview),
+
+ CharSequence sender = formatSender(message);
+ holder.preview.setText(new SpannableStringBuilder(sender).append(" ").append(message.preview),
TextView.BufferType.SPANNABLE);
Spannable str = (Spannable)holder.preview.getText();
// Create our span sections, and assign a format to each.
str.setSpan(new StyleSpan(Typeface.BOLD),
0,
- message.sender.length(),
+ sender.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
str.setSpan(new ForegroundColorSpan(Color.rgb(128,128,128)), // TODO: How do I can specify the android.R.attr.textColorTertiary
- message.sender.length(),
+ sender.length(),
str.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
);
}
else
{
- holder.from.setText(message.sender);
+ holder.from.setText(formatSender(message));
+
holder.from.setTypeface(null, message.read ? Typeface.NORMAL : Typeface.BOLD);
}
@@ -2709,6 +2712,22 @@ public class MessageList
holder.position = position;
}
+ private CharSequence formatSender (MessageInfoHolder message)
+ {
+ if (message.toMe)
+ {
+ return String.format(getString(R.string.messagelist_sent_to_me_format), message.sender);
+ } else if (message.ccMe)
+ {
+ return String.format(getString(R.string.messagelist_sent_cc_me_format), message.sender);
+ }
+ else
+ {
+ return message.sender;
+ }
+ }
+
+
public View getFooterView(int position, View convertView, ViewGroup parent)
{
if (footerView == null)
diff --git a/src/com/fsck/k9/helper/MessageHelper.java b/src/com/fsck/k9/helper/MessageHelper.java
index eb0ae679b..d6a4d592b 100644
--- a/src/com/fsck/k9/helper/MessageHelper.java
+++ b/src/com/fsck/k9/helper/MessageHelper.java
@@ -98,6 +98,24 @@ public class MessageHelper
target.senderAddress = target.compareCounterparty;
}
+
+
+ for (Address address : message.getRecipients(RecipientType.TO)) {
+ if (account.isAnIdentity(address))
+ {
+ target.toMe = true;
+ }
+ }
+
+ if (target.toMe == false ) {
+ for(Address address : message.getRecipients(RecipientType.CC)) {
+ if (account.isAnIdentity(address))
+ {
+ target.ccMe = true;
+ }
+ }
+ }
+
target.subject = message.getSubject();
target.uid = message.getUid();