k-9/k9mail/src/main/java/com/fsck/k9/helper/IdentityHelper.java

61 lines
1.9 KiB
Java

package com.fsck.k9.helper;
import android.util.Log;
import com.fsck.k9.Account;
import com.fsck.k9.Identity;
import com.fsck.k9.K9;
import com.fsck.k9.mail.Address;
import com.fsck.k9.mail.Message;
import com.fsck.k9.mail.MessagingException;
public class IdentityHelper {
/**
* Find the identity a message was sent to.
*
* @param account
* The account the message belongs to.
* @param message
* The message to get the recipients from.
*
* @return The identity the message was sent to, or the account's default identity if it
* couldn't be determined which identity this message was sent to.
*
* @see Account#findIdentity(com.fsck.k9.mail.Address)
*/
public static Identity getRecipientIdentityFromMessage(Account account, Message message) {
Identity recipient = null;
try {
for (Address address : message.getRecipients(Message.RecipientType.TO)) {
Identity identity = account.findIdentity(address);
if (identity != null) {
recipient = identity;
break;
}
}
if (recipient == null) {
Address[] ccAddresses = message.getRecipients(Message.RecipientType.CC);
if (ccAddresses.length > 0) {
for (Address address : ccAddresses) {
Identity identity = account.findIdentity(address);
if (identity != null) {
recipient = identity;
break;
}
}
}
}
} catch (MessagingException e) {
Log.w(K9.LOG_TAG, "Error finding the identity this message was sent to", e);
}
if (recipient == null) {
recipient = account.getIdentity(0);
}
return recipient;
}
}