Added via warning

pull/147/head
M66B 6 years ago
parent 8ba30c59ee
commit b9b638c3b7

@ -53,6 +53,7 @@ import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.internet.AddressException;
import javax.mail.internet.ContentType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
@ -456,6 +457,24 @@ public class MessageHelper {
return (TextUtils.isEmpty(msgid) ? Long.toString(uid) : msgid);
}
Address getSender() throws MessagingException {
String sender = imessage.getHeader("Sender", null);
if (sender == null)
return null;
InternetAddress[] address = null;
try {
address = InternetAddress.parse(sender);
} catch (AddressException ex) {
Log.w(ex);
}
if (address == null || address.length == 0)
return null;
return address[0];
}
Address[] getFrom() throws MessagingException {
return imessage.getFrom();
}
@ -560,7 +579,7 @@ public class MessageHelper {
private Part plain = null;
private Part html = null;
private List<AttachmentPart> attachments = new ArrayList<>();
private List<String> warnings = new ArrayList<>();
private ArrayList<String> warnings = new ArrayList<>();
String getHtml(Context context) throws MessagingException {
if (plain == null && html == null) {
@ -709,7 +728,9 @@ public class MessageHelper {
}
}
String getWarnings() {
String getWarnings(String existing) {
if (existing != null)
warnings.add(0, existing);
if (warnings.size() == 0)
return null;
else

@ -1969,7 +1969,7 @@ public class ServiceSynchronize extends LifecycleService {
String preview = HtmlHelper.getPreview(body);
message.write(this, body);
db.message().setMessageContent(message.id, true, preview);
db.message().setMessageWarning(message.id, parts.getWarnings());
db.message().setMessageWarning(message.id, parts.getWarnings(message.warning));
}
private void doAttachment(EntityFolder folder, EntityOperation op, IMAPFolder ifolder, EntityMessage message, JSONArray jargs, DB db) throws JSONException, MessagingException, IOException {
@ -2515,6 +2515,17 @@ public class ServiceSynchronize extends LifecycleService {
message.ui_ignored = seen;
message.ui_browsed = browsed;
// Check sender
Address sender = helper.getSender();
if (sender != null && senders.length > 0) {
String[] f = ((InternetAddress) senders[0]).getAddress().split("@");
String[] s = ((InternetAddress) sender).getAddress().split("@");
if (f.length > 1 && s.length > 1) {
if (!f[1].equals(s[1]))
message.warning = context.getString(R.string.title_via, s[1]);
}
}
message.id = db.message().insertMessage(message);
Log.i(folder.name + " added id=" + message.id + " uid=" + message.uid);
@ -2658,7 +2669,7 @@ public class ServiceSynchronize extends LifecycleService {
String body = parts.getHtml(context);
message.write(context, body);
db.message().setMessageContent(message.id, true, HtmlHelper.getPreview(body));
db.message().setMessageWarning(message.id, parts.getWarnings());
db.message().setMessageWarning(message.id, parts.getWarnings(message.warning));
Log.i(folder.name + " downloaded message id=" + message.id + " size=" + message.size);
}
}

@ -459,6 +459,7 @@
<string name="title_no_adobe">Adobe Acrobat reader cannot open safely shared files, see the FAQ for more information</string>
<string name="title_no_body">No message text found</string>
<string name="title_no_charset">Unsupported encoding: %1$s</string>
<string name="title_via">Via: %1$s</string>
<string name="title_try">Try FairEmail, an open source, privacy friendly email app for Android</string>

Loading…
Cancel
Save