Fixed from/extra

pull/162/head
M66B 6 years ago
parent bdbdaba839
commit c408944773

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

Loading…
Cancel
Save