public void populate( final MessageInfoHolder target, final Message m, final FolderInfoHolder folder, final Account account) { final Contacts contactHelper = RakuPhotoMail.showContactName() ? Contacts.getInstance(mContext) : null; try { LocalMessage message = (LocalMessage) m; target.message = message; target.compareDate = message.getSentDate(); if (target.compareDate == null) { target.compareDate = message.getInternalDate(); } target.folder = folder; target.read = message.isSet(Flag.SEEN); target.answered = message.isSet(Flag.ANSWERED); target.flagged = message.isSet(Flag.FLAGGED); target.downloaded = message.isSet(Flag.X_DOWNLOADED_FULL); target.partially_downloaded = message.isSet(Flag.X_DOWNLOADED_PARTIAL); Address[] addrs = message.getFrom(); if (addrs.length > 0 && account.isAnIdentity(addrs[0])) { CharSequence to = Address.toFriendly(message.getRecipients(RecipientType.TO), contactHelper); target.compareCounterparty = to.toString(); target.sender = new SpannableStringBuilder(mContext.getString(R.string.message_to_label)).append(to); } else { target.sender = Address.toFriendly(addrs, contactHelper); target.compareCounterparty = target.sender.toString(); } if (addrs.length > 0) { target.senderAddress = addrs[0].getAddress(); } else { // a reasonable fallback "whomever we were corresponding with target.senderAddress = target.compareCounterparty; } target.uid = message.getUid(); target.account = account.getDescription(); target.uri = "email://messages/" + account.getAccountNumber() + "/" + m.getFolder().getName() + "/" + m.getUid(); } catch (MessagingException me) { Log.w(RakuPhotoMail.LOG_TAG, "Unable to load message info", me); } }