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();