From 64885369e26142492ca50849168e5f595a30efcc Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 18 Apr 2020 09:44:16 +0200 Subject: [PATCH] Improved empty message check --- app/src/main/java/eu/faircode/email/Core.java | 9 ++------- .../main/java/eu/faircode/email/MessageHelper.java | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index cdfcd7940c..9369e98384 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -2375,9 +2375,6 @@ class Core { } } - if (message.total != null && message.total == 0) - reportEmptyMessage(context, state, account, istore); - try { db.beginTransaction(); @@ -2448,8 +2445,7 @@ class Core { Log.i(folder.name + " inline downloaded message id=" + message.id + " size=" + message.size + "/" + (body == null ? null : body.length())); - Long size = parts.getBodySize(); - if (TextUtils.isEmpty(body) && size != null && size > 0) + if (TextUtils.isEmpty(body) && parts.hasBody()) reportEmptyMessage(context, state, account, istore); } } @@ -2796,8 +2792,7 @@ class Core { Log.i(folder.name + " downloaded message id=" + message.id + " size=" + message.size + "/" + (body == null ? null : body.length())); - Long size = parts.getBodySize(); - if (TextUtils.isEmpty(body) && size != null && size > 0) + if (TextUtils.isEmpty(body) && parts.hasBody()) reportEmptyMessage(context, state, account, istore); } } diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index 1570e53ff4..50010ff6f5 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -1458,6 +1458,20 @@ public class MessageHelper { return (html.size() == 0); } + boolean hasBody() throws MessagingException { + List all = new ArrayList<>(); + all.addAll(plain); + all.addAll(html); + if (all.size() == 0) + return true; + + for (Part p : all) + if (p.getSize() > 0) + return true; + + return false; + } + Long getBodySize() throws MessagingException { Long size = null;