Skip suggesting no-reply addresses of received messages

pull/212/head
M66B 3 years ago
parent 6acb252a85
commit 6997965336

@ -1148,7 +1148,9 @@ public class FragmentCompose extends FragmentBase {
if (suggest_sent) if (suggest_sent)
items.addAll(db.contact().searchContacts(null, EntityContact.TYPE_TO, wildcard)); items.addAll(db.contact().searchContacts(null, EntityContact.TYPE_TO, wildcard));
if (suggest_received) if (suggest_received)
items.addAll(db.contact().searchContacts(null, EntityContact.TYPE_FROM, wildcard)); for (EntityContact item : db.contact().searchContacts(null, EntityContact.TYPE_FROM, wildcard))
if (!MessageHelper.isNoReply(item.email))
items.add(item);
for (EntityContact item : items) { for (EntityContact item : items) {
EntityContact existing = map.get(item.email); EntityContact existing = map.get(item.email);
if (existing == null) if (existing == null)

@ -5284,21 +5284,27 @@ public class MessageHelper {
static boolean isNoReply(Address address) { static boolean isNoReply(Address address) {
if (address instanceof InternetAddress) { if (address instanceof InternetAddress) {
String email = ((InternetAddress) address).getAddress(); String email = ((InternetAddress) address).getAddress();
String username = UriHelper.getEmailUser(email); if (isNoReply(email))
String domain = UriHelper.getEmailDomain(email); return true;
}
if (!TextUtils.isEmpty(username)) { return false;
username = username.toLowerCase(Locale.ROOT); }
for (String value : DO_NOT_REPLY)
if (username.contains(value)) static boolean isNoReply(String email) {
return true; String username = UriHelper.getEmailUser(email);
} if (!TextUtils.isEmpty(username)) {
if (!TextUtils.isEmpty(domain)) { username = username.toLowerCase(Locale.ROOT);
domain = domain.toLowerCase(Locale.ROOT); for (String value : DO_NOT_REPLY)
for (String value : DO_NOT_REPLY) if (username.contains(value))
if (domain.startsWith(value)) return true;
return true; }
}
String domain = UriHelper.getEmailDomain(email);
if (!TextUtils.isEmpty(domain)) {
domain = domain.toLowerCase(Locale.ROOT);
for (String value : DO_NOT_REPLY)
if (domain.startsWith(value))
return true;
} }
return false; return false;

Loading…
Cancel
Save