MCPcopy Create free account
hub / github.com/M66B/FairEmail / setViewport

Method setViewport

app/src/main/java/eu/faircode/email/HtmlHelper.java:2538–2583  ·  view source on GitHub ↗
(Document document, boolean overview)

Source from the content-addressed store, hash-verified

2536 }
2537
2538 static void setViewport(Document document, boolean overview) {
2539 // https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag
2540 // https://drafts.csswg.org/css-device-adapt/#viewport-meta
2541 Elements meta = document.select("meta").select("[name=viewport]");
2542 // Note that the browser will recognize meta elements in the body too
2543 if (overview) {
2544 // fit width
2545 meta.remove();
2546 document.head().prependElement("meta")
2547 .attr("name", "viewport")
2548 .attr("content", "width=device-width");
2549 } else {
2550 if (meta.size() == 1) {
2551 String content = meta.attr("content");
2552 String[] param = content.split("[;,]");
2553 for (int i = 0; i < param.length; i++) {
2554 String[] kv = param[i].split("=");
2555 if (kv.length == 2) {
2556 String key = kv[0]
2557 .replaceAll("\\s+", "")
2558 .toLowerCase(Locale.ROOT);
2559 switch (key) {
2560 case "user-scalable":
2561 kv[1] = "yes";
2562 param[i] = TextUtils.join("=", kv);
2563 break;
2564 case "minimum-scale":
2565 case "maximum-scale":
2566 kv[0] = "disabled-scaling";
2567 param[i] = TextUtils.join("=", kv);
2568 break;
2569 }
2570 }
2571 }
2572 meta.attr("content", TextUtils.join(",", param));
2573 } else {
2574 meta.remove();
2575 document.head().prependElement("meta")
2576 .attr("name", "viewport")
2577 .attr("content", "width=device-width, initial-scale=1.0");
2578 }
2579 }
2580
2581 if (BuildConfig.DEBUG)
2582 Log.i(document.head().html());
2583 }
2584
2585 static void overrideWidth(Document document) {
2586 List<String> tags = new ArrayList<>();

Callers 2

onExecuteMethod · 0.95
onExecuteMethod · 0.95

Calls 7

iMethod · 0.95
joinMethod · 0.80
htmlMethod · 0.80
selectMethod · 0.65
sizeMethod · 0.65
removeMethod · 0.45
headMethod · 0.45

Tested by

no test coverage detected