mirror of https://github.com/M66B/FairEmail.git
Fixed from/extra
This commit is contained in:
parent
bdbdaba839
commit
c408944773
|
@ -2096,12 +2096,9 @@ public class FragmentCompose extends FragmentBase {
|
|||
data.draft.inreplyto = ref.msgid;
|
||||
data.draft.thread = ref.thread;
|
||||
|
||||
EntityIdentity identity = null;
|
||||
if (ref.identity != null) {
|
||||
identity = db.identity().getIdentity(ref.identity);
|
||||
if (identity != null)
|
||||
data.draft.from = new Address[]{new InternetAddress(identity.email, identity.name)};
|
||||
}
|
||||
EntityIdentity ridentity = null;
|
||||
if (ref.identity != null)
|
||||
ridentity = db.identity().getIdentity(ref.identity);
|
||||
|
||||
if ("list".equals(action) && ref.list_post != null)
|
||||
data.draft.to = ref.list_post;
|
||||
|
@ -2109,15 +2106,17 @@ public class FragmentCompose extends FragmentBase {
|
|||
data.draft.to = ref.receipt_to;
|
||||
else {
|
||||
// Prevent replying to self
|
||||
if (ref.replySelf(identity)) {
|
||||
data.draft.to = ref.to;
|
||||
if (ref.replySelf(ridentity)) {
|
||||
data.draft.from = ref.from;
|
||||
} else
|
||||
data.draft.to = ref.to;
|
||||
} else {
|
||||
data.draft.from = ref.to;
|
||||
data.draft.to = (ref.reply == null || ref.reply.length == 0 ? ref.from : ref.reply);
|
||||
}
|
||||
}
|
||||
|
||||
if ("reply_all".equals(action))
|
||||
data.draft.cc = ref.getAllRecipients(identity);
|
||||
data.draft.cc = ref.getAllRecipients(ridentity);
|
||||
else if ("receipt".equals(action))
|
||||
data.draft.receipt_request = true;
|
||||
|
||||
|
@ -2167,6 +2166,7 @@ public class FragmentCompose extends FragmentBase {
|
|||
data.draft.plain_only = true;
|
||||
|
||||
// Select identity matching from address
|
||||
Address from = null;
|
||||
EntityIdentity selected = null;
|
||||
long aid = args.getLong("account", -1);
|
||||
|
||||
|
@ -2175,6 +2175,7 @@ public class FragmentCompose extends FragmentBase {
|
|||
for (EntityIdentity identity : data.identities)
|
||||
if (identity.account.equals(aid) &&
|
||||
identity.sameAddress(sender)) {
|
||||
from = sender;
|
||||
selected = identity;
|
||||
break;
|
||||
}
|
||||
|
@ -2184,6 +2185,7 @@ public class FragmentCompose extends FragmentBase {
|
|||
for (EntityIdentity identity : data.identities)
|
||||
if (identity.account.equals(aid) &&
|
||||
identity.similarAddress(sender)) {
|
||||
from = sender;
|
||||
selected = identity;
|
||||
break;
|
||||
}
|
||||
|
@ -2192,6 +2194,7 @@ public class FragmentCompose extends FragmentBase {
|
|||
for (Address sender : data.draft.from)
|
||||
for (EntityIdentity identity : data.identities)
|
||||
if (identity.sameAddress(sender)) {
|
||||
from = sender;
|
||||
selected = identity;
|
||||
break;
|
||||
}
|
||||
|
@ -2200,6 +2203,7 @@ public class FragmentCompose extends FragmentBase {
|
|||
for (Address sender : data.draft.from)
|
||||
for (EntityIdentity identity : data.identities)
|
||||
if (identity.similarAddress(sender)) {
|
||||
from = sender;
|
||||
selected = identity;
|
||||
break;
|
||||
}
|
||||
|
@ -2244,9 +2248,9 @@ public class FragmentCompose extends FragmentBase {
|
|||
data.draft.identity = selected.id;
|
||||
data.draft.from = new InternetAddress[]{new InternetAddress(selected.email, selected.name)};
|
||||
|
||||
int at = selected.email.indexOf('@');
|
||||
if (at > 0)
|
||||
data.draft.extra = selected.email.substring(0, at);
|
||||
String extra = (from == null ? selected.email : ((InternetAddress) from).getAddress());
|
||||
if (extra != null && extra.contains("@"))
|
||||
data.draft.extra = extra.substring(0, extra.indexOf("@"));
|
||||
|
||||
data.draft.sender = MessageHelper.getSortKey(data.draft.from);
|
||||
Uri lookupUri = ContactInfo.getLookupUri(context, data.draft.from);
|
||||
|
|
Loading…
Reference in New Issue