Made removing HTML formatting an advanced option

Default off
This commit is contained in:
M66B
2018-08-28 09:10:31 +00:00
parent 8fa2bcd2f8
commit 6fafbaac5a
5 changed files with 51 additions and 9 deletions

View File

@@ -20,12 +20,15 @@ package eu.faircode.email;
*/
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.text.Html;
import android.text.TextUtils;
import org.jsoup.Jsoup;
import org.jsoup.helper.StringUtil;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.jsoup.nodes.TextNode;
import org.jsoup.select.NodeTraversor;
@@ -110,9 +113,19 @@ public class HtmlHelper implements NodeVisitor {
}
public static String sanitize(Context context, String html, boolean reply) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
Document document = Jsoup.parse(html);
HtmlHelper visitor = new HtmlHelper(context, reply);
NodeTraversor.traverse(visitor, document.body());
return visitor.toString();
if (prefs.getBoolean("sanitize", false)) {
HtmlHelper visitor = new HtmlHelper(context, reply);
NodeTraversor.traverse(visitor, document.body());
return visitor.toString();
} else {
document.getElementsByTag("style").remove();
document.select("[style]").removeAttr("style");
for (Element tr : document.select("tr"))
tr.after("<br>");
return document.body().html();
}
}
}