Get flags from original message

pull/162/head
M66B 6 years ago
parent c5848917a6
commit e2e948d104

@ -1923,7 +1923,7 @@ class Core {
Log.w(folder.name + " " + ex.getMessage()); Log.w(folder.name + " " + ex.getMessage());
Log.i(folder.name + " fetching raw message uid=" + uid); Log.i(folder.name + " fetching raw message uid=" + uid);
File file = File.createTempFile("serverbug", "." + uid, context.getCacheDir()); File file = File.createTempFile("serverbug." + folder.id, "." + uid, context.getCacheDir());
try (OutputStream os = new BufferedOutputStream(new FileOutputStream(file))) { try (OutputStream os = new BufferedOutputStream(new FileOutputStream(file))) {
imessage.writeTo(os); imessage.writeTo(os);
} }
@ -1933,7 +1933,7 @@ class Core {
Log.i(folder.name + " decoding again uid=" + uid); Log.i(folder.name + " decoding again uid=" + uid);
try (InputStream is = new BufferedInputStream(new FileInputStream(file))) { try (InputStream is = new BufferedInputStream(new FileInputStream(file))) {
imessage = new MimeMessage(isession, is); imessage = new MimeMessageEx(isession, is, imessage);
} }
file.delete(); file.delete();

@ -19,18 +19,27 @@ package eu.faircode.email;
Copyright 2018-2019 by Marcel Bokhorst (M66B) Copyright 2018-2019 by Marcel Bokhorst (M66B)
*/ */
import java.io.InputStream;
import javax.mail.Flags;
import javax.mail.MessagingException; import javax.mail.MessagingException;
import javax.mail.Session; import javax.mail.Session;
import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage;
public class MimeMessageEx extends MimeMessage { public class MimeMessageEx extends MimeMessage {
private String msgid; private String msgid;
private MimeMessage original;
MimeMessageEx(Session session, String msgid) { MimeMessageEx(Session session, String msgid) {
super(session); super(session);
this.msgid = msgid; this.msgid = msgid;
} }
MimeMessageEx(Session session, InputStream is, MimeMessage original) throws MessagingException {
super(session, is);
this.original = original;
}
@Override @Override
public String getMessageID() throws MessagingException { public String getMessageID() throws MessagingException {
if (this.msgid == null) if (this.msgid == null)
@ -48,4 +57,12 @@ public class MimeMessageEx extends MimeMessage {
Log.i("Override Message-ID=" + msgid); Log.i("Override Message-ID=" + msgid);
} }
} }
@Override
public synchronized boolean isSet(Flags.Flag flag) throws MessagingException {
if (original == null)
return super.isSet(flag);
else
return original.isSet(flag);
}
} }

Loading…
Cancel
Save