diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 84868a9857..2643177ddb 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -1000,6 +1000,20 @@ public class Helper { return true; } + static Integer parseInt(String text) { + if (TextUtils.isEmpty(text)) + return null; + + if (!TextUtils.isDigitsOnly(text)) + return null; + + try { + return Integer.parseInt(text); + } catch (NumberFormatException ignored) { + return null; + } + } + // Files static String sanitizeFilename(String name) { diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 59864b221f..7d9426d03c 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -130,6 +130,7 @@ public class HtmlHelper { private static final int MAX_AUTO_LINK = 250; private static final int MAX_FORMAT_TEXT_SIZE = 200 * 1024; // characters private static final int MAX_FULL_TEXT_SIZE = 1024 * 1024; // characters + private static final int SMALL_IMAGE_SIZE = 5; // pixels private static final int TRACKING_PIXEL_SURFACE = 25; // pixels private static final float[] HEADING_SIZES = {1.5f, 1.4f, 1.3f, 1.2f, 1.1f, 1f}; private static final String LINE = "----------------------------------------"; @@ -1472,8 +1473,15 @@ public class HtmlHelper { Uri uri = Uri.parse(src); String host = uri.getHost(); if (host == null || hosts.contains(host)) { - if (!full && isTrackingPixel(img)) // Is small image - img.remove(); + if (!full) { + // Remove spacer, etc + Integer width = Helper.parseInt(img.attr("width").trim()); + Integer height = Helper.parseInt(img.attr("height").trim()); + if ((width != null && width <= SMALL_IMAGE_SIZE) || + (height != null && height <= SMALL_IMAGE_SIZE)) + img.remove(); + } + continue; }