Added via warning

This commit is contained in:
M66B
2019-01-19 19:08:01 +00:00
parent 8ba30c59ee
commit b9b638c3b7
3 changed files with 37 additions and 4 deletions

View File

@@ -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

View File

@@ -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);
}
}