From 0cf490fdedece5b6af117d56b7da4769eb881d05 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 29 Aug 2019 20:25:40 +0200 Subject: [PATCH] Prevent EML OOM --- .../java/eu/faircode/email/ActivityEml.java | 13 +++------- app/src/main/res/layout/activity_eml.xml | 26 +------------------ 2 files changed, 5 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityEml.java b/app/src/main/java/eu/faircode/email/ActivityEml.java index d503443a62..605d48b134 100644 --- a/app/src/main/java/eu/faircode/email/ActivityEml.java +++ b/app/src/main/java/eu/faircode/email/ActivityEml.java @@ -44,7 +44,6 @@ import androidx.constraintlayout.widget.Group; import com.google.android.material.snackbar.Snackbar; import com.sun.mail.imap.IMAPFolder; -import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.util.List; import java.util.Properties; @@ -75,7 +74,6 @@ public class ActivityEml extends ActivityBase { final TextView tvParts = findViewById(R.id.tvParts); final TextView tvBody = findViewById(R.id.tvBody); final TextView tvHtml = findViewById(R.id.tvHtml); - final TextView tvEml = findViewById(R.id.tvEml); final ContentLoadingProgressBar pbWait = findViewById(R.id.pbWait); final Group grpReady = findViewById(R.id.grpReady); @@ -158,12 +156,11 @@ public class ActivityEml extends ActivityBase { result.parts = HtmlHelper.fromHtml(sb.toString()); result.html = parts.getHtml(context); - if (result.html != null) + if (result.html != null) { result.body = HtmlHelper.fromHtml(HtmlHelper.sanitize(context, result.html, false)); - - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - imessage.writeTo(bos); - result.eml = new String(bos.toByteArray()); + if (result.html.length() > 100 * 1024) + result.html = null; + } return result; } @@ -181,7 +178,6 @@ public class ActivityEml extends ActivityBase { tvParts.setText(result.parts); tvBody.setText(result.body); tvHtml.setText(result.html); - tvEml.setText(result.eml.substring(0, Math.min(10 * 1024, result.eml.length()))); // prevent ANR grpReady.setVisibility(View.VISIBLE); } @@ -318,6 +314,5 @@ public class ActivityEml extends ActivityBase { Spanned parts; Spanned body; String html; - String eml; } } diff --git a/app/src/main/res/layout/activity_eml.xml b/app/src/main/res/layout/activity_eml.xml index e2ab9a9652..7dfc003c29 100644 --- a/app/src/main/res/layout/activity_eml.xml +++ b/app/src/main/res/layout/activity_eml.xml @@ -222,29 +222,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/vSeparatorHtml" /> - - - - + vSeparatorHtml,tvHtml" />