mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-06 09:03:56 +02:00
Added setting to show hidden texts
This commit is contained in:
@@ -82,6 +82,7 @@ public class HtmlHelper {
|
||||
static String sanitize(Context context, String html, boolean show_images) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
boolean text_color = prefs.getBoolean("text_color", true);
|
||||
boolean display_hidden = prefs.getBoolean("display_hidden", false);
|
||||
boolean disable_tracking = prefs.getBoolean("disable_tracking", true);
|
||||
|
||||
Document parsed = JsoupEx.parse(html);
|
||||
@@ -148,21 +149,22 @@ public class HtmlHelper {
|
||||
font.tagName("span");
|
||||
}
|
||||
|
||||
// Sanitize span styles
|
||||
for (Element span : document.select("*")) {
|
||||
String style = span.attr("style");
|
||||
// Sanitize styles
|
||||
for (Element element : document.select("*")) {
|
||||
String style = element.attr("style");
|
||||
if (!TextUtils.isEmpty(style)) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
String[] params = style.split(";");
|
||||
for (String param : params) {
|
||||
String[] kv = param.split(":");
|
||||
if (kv.length == 2)
|
||||
switch (kv[0].trim().toLowerCase(Locale.ROOT)) {
|
||||
if (kv.length == 2) {
|
||||
String key = kv[0].trim().toLowerCase(Locale.ROOT);
|
||||
String value = kv[1].toLowerCase(Locale.ROOT)
|
||||
.replace(" ", "");
|
||||
switch (key) {
|
||||
case "color":
|
||||
String c = kv[1]
|
||||
.toLowerCase(Locale.ROOT)
|
||||
.replace(" ", "")
|
||||
String c = value
|
||||
.replace("inherit", "")
|
||||
.replace("initial", "")
|
||||
.replace("windowtext", "")
|
||||
@@ -201,7 +203,7 @@ public class HtmlHelper {
|
||||
sb.append("color:").append(c).append(";");
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N)
|
||||
span.attr("color", c);
|
||||
element.attr("color", c);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -212,13 +214,21 @@ public class HtmlHelper {
|
||||
case "line-through":
|
||||
sb.append(param).append(";");
|
||||
break;
|
||||
|
||||
case "display":
|
||||
if ("none".equals(value) && !display_hidden) {
|
||||
Log.i("Removing element " + element.tagName());
|
||||
element.remove();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (sb.length() == 0)
|
||||
span.removeAttr("style");
|
||||
element.removeAttr("style");
|
||||
else
|
||||
span.attr("style", sb.toString());
|
||||
element.attr("style", sb.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user