From 6c460eef23ffefac936194724c1d7349d2c39259 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 24 Jul 2024 22:06:46 +0200 Subject: [PATCH] Skip replacing meta/viewport --- .../java/eu/faircode/email/HtmlHelper.java | 56 +++++++++---------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 9af7ff991e..cb3ffd8c57 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -2479,43 +2479,39 @@ public class HtmlHelper { // https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag // https://drafts.csswg.org/css-device-adapt/#viewport-meta Elements meta = document.select("meta").select("[name=viewport]"); + if (meta.size() != 1) + return; + // Note that the browser will recognize meta elements in the body too if (overview) { // fit width - meta.remove(); - document.head().prependElement("meta") - .attr("name", "viewport") - .attr("content", "width=device-width"); + //meta.remove(); + //document.head().prependElement("meta") + // .attr("name", "viewport") + // .attr("content", "width=device-width"); } else { - if (meta.size() == 1) { - String content = meta.attr("content"); - String[] param = content.split("[;,]"); - for (int i = 0; i < param.length; i++) { - String[] kv = param[i].split("="); - if (kv.length == 2) { - String key = kv[0] - .replaceAll("\\s+", "") - .toLowerCase(Locale.ROOT); - switch (key) { - case "user-scalable": - kv[1] = "yes"; - param[i] = TextUtils.join("=", kv); - break; - case "minimum-scale": - case "maximum-scale": - kv[0] = "disabled-scaling"; - param[i] = TextUtils.join("=", kv); - break; - } + String content = meta.attr("content"); + String[] param = content.split("[;,]"); + for (int i = 0; i < param.length; i++) { + String[] kv = param[i].split("="); + if (kv.length == 2) { + String key = kv[0] + .replaceAll("\\s+", "") + .toLowerCase(Locale.ROOT); + switch (key) { + case "user-scalable": + kv[1] = "yes"; + param[i] = TextUtils.join("=", kv); + break; + case "minimum-scale": + case "maximum-scale": + kv[0] = "disabled-scaling"; + param[i] = TextUtils.join("=", kv); + break; } } - meta.attr("content", TextUtils.join(",", param)); - } else { - meta.remove(); - document.head().prependElement("meta") - .attr("name", "viewport") - .attr("content", "width=device-width, initial-scale=1.0"); } + meta.attr("content", TextUtils.join(",", param)); } if (BuildConfig.DEBUG)