mirror of https://github.com/M66B/FairEmail.git
Added POP3 body operation
This commit is contained in:
parent
bc2bbc836f
commit
c4a2bfef32
|
@ -441,6 +441,10 @@ class Core {
|
||||||
onRaw(context, jargs, folder, message, (POP3Store) istore, (POP3Folder) ifolder);
|
onRaw(context, jargs, folder, message, (POP3Store) istore, (POP3Folder) ifolder);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case EntityOperation.BODY:
|
||||||
|
onBody(context, jargs, folder, message, (POP3Folder) ifolder, (POP3Store) istore);
|
||||||
|
break;
|
||||||
|
|
||||||
case EntityOperation.ATTACHMENT:
|
case EntityOperation.ATTACHMENT:
|
||||||
onAttachment(context, jargs, folder, message, (POP3Folder) ifolder, (POP3Store) istore);
|
onAttachment(context, jargs, folder, message, (POP3Folder) ifolder, (POP3Store) istore);
|
||||||
break;
|
break;
|
||||||
|
@ -2200,6 +2204,36 @@ class Core {
|
||||||
EntityLog.log(context, "Operation attachment size=" + attachment.size);
|
EntityLog.log(context, "Operation attachment size=" + attachment.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void onBody(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, POP3Folder ifolder, POP3Store istore) throws MessagingException, IOException {
|
||||||
|
if (!EntityFolder.INBOX.equals(folder.type))
|
||||||
|
throw new IllegalArgumentException("Not INBOX");
|
||||||
|
|
||||||
|
Map<EntityMessage, Message> map = findMessages(context, folder, Arrays.asList(message), istore, ifolder);
|
||||||
|
if (map.size() == 0)
|
||||||
|
throw new MessageRemovedException("Message not found");
|
||||||
|
|
||||||
|
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
boolean download_plain = prefs.getBoolean("download_plain", false);
|
||||||
|
|
||||||
|
MessageHelper helper = new MessageHelper((MimeMessage) map.entrySet().iterator().next().getValue(), context);
|
||||||
|
MessageHelper.MessageParts parts = helper.getMessageParts();
|
||||||
|
|
||||||
|
String body = parts.getHtml(context, download_plain);
|
||||||
|
File file = message.getFile(context);
|
||||||
|
Helper.writeText(file, body);
|
||||||
|
String text = HtmlHelper.getFullText(body);
|
||||||
|
message.preview = HtmlHelper.getPreview(text);
|
||||||
|
message.language = HtmlHelper.getLanguage(context, message.subject, text);
|
||||||
|
|
||||||
|
DB db = DB.getInstance(context);
|
||||||
|
db.message().setMessageContent(message.id,
|
||||||
|
true,
|
||||||
|
message.language,
|
||||||
|
parts.isPlainOnly(download_plain),
|
||||||
|
message.preview,
|
||||||
|
parts.getWarnings(message.warning));
|
||||||
|
}
|
||||||
|
|
||||||
private static void onAttachment(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, POP3Folder ifolder, POP3Store istore) throws JSONException, MessagingException, IOException {
|
private static void onAttachment(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, POP3Folder ifolder, POP3Store istore) throws JSONException, MessagingException, IOException {
|
||||||
long id = jargs.getLong(0);
|
long id = jargs.getLong(0);
|
||||||
|
|
||||||
|
|
|
@ -7003,10 +7003,11 @@ public class FragmentMessages extends FragmentBase
|
||||||
if (account.protocol != EntityAccount.TYPE_IMAP) {
|
if (account.protocol != EntityAccount.TYPE_IMAP) {
|
||||||
if (account.auto_seen)
|
if (account.auto_seen)
|
||||||
EntityOperation.queue(context, message, EntityOperation.SEEN, true);
|
EntityOperation.queue(context, message, EntityOperation.SEEN, true);
|
||||||
|
if (!message.content)
|
||||||
|
EntityOperation.queue(context, message, EntityOperation.BODY);
|
||||||
} else if (message.uid != null) {
|
} else if (message.uid != null) {
|
||||||
if (account.auto_seen)
|
if (account.auto_seen)
|
||||||
EntityOperation.queue(context, message, EntityOperation.SEEN, true);
|
EntityOperation.queue(context, message, EntityOperation.SEEN, true);
|
||||||
|
|
||||||
if (!message.content)
|
if (!message.content)
|
||||||
EntityOperation.queue(context, message, EntityOperation.BODY);
|
EntityOperation.queue(context, message, EntityOperation.BODY);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue