public static CharSequence toFriendly(Address[] addresses, Contacts contacts) { if (addresses == null) { return null; } if (addresses.length >= TOO_MANY_ADDRESSES) { // Don't look up contacts if the number of addresses is very high. contacts = null; } SpannableStringBuilder sb = new SpannableStringBuilder(); for (int i = 0; i < addresses.length; i++) { sb.append(toFriendly(addresses[i], contacts)); if (i < addresses.length - 1) { sb.append(','); } } return sb; }
public CharSequence getDisplayName(Account account, Address[] fromAddrs, Address[] toAddrs) { final Contacts contactHelper = K9.showContactName() ? Contacts.getInstance(mContext) : null; CharSequence displayName; if (fromAddrs.length > 0 && account.isAnIdentity(fromAddrs[0])) { CharSequence to = toFriendly(toAddrs, contactHelper); displayName = new SpannableStringBuilder( resourceProvider.contactDisplayNamePrefix()).append(to); } else { displayName = toFriendly(fromAddrs, contactHelper); } return displayName; }
private String getMessageSender(Account account, Message message) { boolean isSelf = false; final Contacts contacts = K9.showContactName() ? Contacts.getInstance(context) : null; final Address[] fromAddresses = message.getFrom(); if (fromAddresses != null) { isSelf = account.isAnIdentity(fromAddresses); if (!isSelf && fromAddresses.length > 0) { return MessageHelper.toFriendly(fromAddresses[0], contacts).toString(); } } if (isSelf) { // show To: if the message was sent from me Address[] recipients = message.getRecipients(Message.RecipientType.TO); if (recipients != null && recipients.length > 0) { String recipientDisplayName = MessageHelper.toFriendly(recipients[0], contacts).toString(); return resourceProvider.recipientDisplayName(recipientDisplayName); } } return null; }
@Test public void testToFriendlyWithChangeContactColor() throws Exception { Address address = new Address("test@testor.com"); CharSequence friendly = MessageHelper.toFriendly(address, contactsWithFakeContact, true, true, Color.RED); assertTrue(friendly instanceof SpannableString); assertEquals("Tim Testor", friendly.toString()); }
/** * Returns the name of the contact this email address belongs to if * the {@link Contacts contacts} parameter is not {@code null} and a * contact is found. Otherwise the personal portion of the {@link Address} * is returned. If that isn't available either, the email address is * returned. * * @param address An {@link com.fsck.k9.mail.Address} * @param contacts A {@link Contacts} instance or {@code null}. * @return A "friendly" name for this {@link Address}. */ public static CharSequence toFriendly(Address address, Contacts contacts) { return toFriendly(address,contacts, K9.showCorrespondentNames(), K9.changeContactNameColor(), K9.getContactNameColor()); }
@Test public void testToFriendlyWithoutCorrespondentNames() throws Exception { Address address = new Address("test@testor.com", "Tim Testor"); CharSequence friendly = MessageHelper.toFriendly(address, contactsWithFakeContact, false, false, 0); assertEquals("test@testor.com", friendly.toString()); }
@Test public void toFriendly_spoofPreventionDoesntOverrideContact() { Address address = new Address("test@testor.com", "Tim Testor"); CharSequence friendly = MessageHelper.toFriendly(address, contactsWithFakeSpoofContact, true, false, 0); assertEquals("Tim@Testor", friendly.toString()); } }
@Test public void testToFriendlyWithContactLookup() throws Exception { Address address = new Address("test@testor.com"); assertEquals("Tim Testor", MessageHelper.toFriendly(address, contactsWithFakeContact).toString()); }
@Test public void toFriendly_spoofPreventionOverridesPersonal() { Address address = new Address("test@testor.com", "potus@whitehouse.gov"); CharSequence friendly = MessageHelper.toFriendly(address, contacts); assertEquals("test@testor.com", friendly.toString()); }
@Test public void testToFriendlyShowsEmailPartIfNoPersonalPartExists() throws Exception { Address address = new Address("test@testor.com"); assertEquals("test@testor.com", MessageHelper.toFriendly(address, contacts)); }
@Test public void testToFriendlyShowsPersonalPartIfItExists() throws Exception { Address address = new Address("test@testor.com", "Tim Testor"); assertEquals("Tim Testor", MessageHelper.toFriendly(address, contacts)); }
@Test public void testToFriendlyArray() throws Exception { Address address1 = new Address("test@testor.com", "Tim Testor"); Address address2 = new Address("foo@bar.com", "Foo Bar"); Address[] addresses = new Address[] { address1, address2 }; assertEquals("Tim Testor,Foo Bar", MessageHelper.toFriendly(addresses, contacts).toString()); }
public static MessageInfoHolder create(Context context, LocalMessage message, Account account) { Contacts contactHelper = K9.showContactName() ? Contacts.getInstance(context) : null; MessageInfoHolder target = new MessageInfoHolder(); target.message = message; target.compareDate = message.getSentDate(); if (target.compareDate == null) { target.compareDate = message.getInternalDate(); } target.read = message.isSet(Flag.SEEN); Address[] addrs = message.getFrom(); String counterParty; if (addrs.length > 0 && account.isAnIdentity(addrs[0])) { CharSequence to = MessageHelper.toFriendly(message.getRecipients(RecipientType.TO), contactHelper); counterParty = to.toString(); target.sender = new SpannableStringBuilder(context.getString(R.string.message_to_label)).append(to); } else { target.sender = MessageHelper.toFriendly(addrs, contactHelper); counterParty = target.sender.toString(); } if (addrs.length > 0) { target.senderAddress = addrs[0].getAddress(); } else { // a reasonable fallback "whomever we were corresponding with target.senderAddress = counterParty; } target.uid = message.getUid(); target.uri = message.getUri(); return target; }
public void populate(final Message message, final Account account) { final Contacts contacts = K9.showContactName() ? mContacts : null; final CharSequence from = MessageHelper.toFriendly(message.getFrom(), contacts); final CharSequence to = MessageHelper.toFriendly(message.getRecipients(Message.RecipientType.TO), contacts); final CharSequence cc = MessageHelper.toFriendly(message.getRecipients(Message.RecipientType.CC), contacts); final CharSequence bcc = MessageHelper.toFriendly(message.getRecipients(Message.RecipientType.BCC), contacts); mSenderView.setVisibility(VISIBLE); String sender = getResources().getString(R.string.message_view_sender_label, MessageHelper.toFriendly(message.getSender(), contacts)); mSenderView.setText(sender); } else {