mirror of https://github.com/M66B/FairEmail.git
Dedup addresses
This commit is contained in:
parent
c49156788e
commit
f6070d8795
|
@ -5506,9 +5506,9 @@ public class FragmentCompose extends FragmentBase {
|
|||
|
||||
// Get data
|
||||
InternetAddress[] afrom = (identity == null ? null : new InternetAddress[]{new InternetAddress(identity.email, identity.name, StandardCharsets.UTF_8.name())});
|
||||
InternetAddress[] ato = MessageHelper.parseAddresses(context, to);
|
||||
InternetAddress[] acc = MessageHelper.parseAddresses(context, cc);
|
||||
InternetAddress[] abcc = MessageHelper.parseAddresses(context, bcc);
|
||||
InternetAddress[] ato = MessageHelper.dedup(MessageHelper.parseAddresses(context, to));
|
||||
InternetAddress[] acc = MessageHelper.dedup(MessageHelper.parseAddresses(context, cc));
|
||||
InternetAddress[] abcc = MessageHelper.dedup(MessageHelper.parseAddresses(context, bcc));
|
||||
|
||||
// Safe guard
|
||||
if (action == R.id.action_send) {
|
||||
|
|
|
@ -3175,6 +3175,23 @@ public class MessageHelper {
|
|||
return addresses;
|
||||
}
|
||||
|
||||
static InternetAddress[] dedup(InternetAddress[] addresses) {
|
||||
if (addresses == null)
|
||||
return null;
|
||||
|
||||
List<String> emails = new ArrayList<>();
|
||||
List<Address> result = new ArrayList<>();
|
||||
for (InternetAddress address : addresses) {
|
||||
String email = address.getAddress();
|
||||
if (!emails.contains(email)) {
|
||||
emails.add(email);
|
||||
result.add(address);
|
||||
}
|
||||
}
|
||||
|
||||
return result.toArray(new InternetAddress[0]);
|
||||
}
|
||||
|
||||
static boolean isRemoved(Throwable ex) {
|
||||
while (ex != null) {
|
||||
if (ex instanceof MessageRemovedException ||
|
||||
|
|
Loading…
Reference in New Issue