diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 95da033c9a..0dfbd8334a 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -816,7 +816,8 @@ public class AdapterMessage extends RecyclerView.Adapter uris = args.getParcelableArrayList("attachments"); @@ -1657,9 +1656,8 @@ public class FragmentCompose extends FragmentEx { if (dirty) { db.message().updateMessage(draft); draft.write(context, body); - String text = (body == null ? null : Jsoup.parse(body).text()); - String preview = (text == null ? null : text.substring(0, Math.min(text.length(), 250))); - db.message().setMessageContent(draft.id, true, preview); + db.message().setMessageContent( + draft.id, true, HtmlHelper.getPreview(body)); } // Execute action diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index a20f290099..ce0d824b9c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -41,8 +41,6 @@ import android.widget.Button; import android.widget.CompoundButton; import android.widget.Spinner; -import org.jsoup.Jsoup; - import java.io.IOException; import androidx.annotation.NonNull; @@ -229,10 +227,9 @@ public class FragmentOptions extends FragmentEx implements SharedPreferences.OnS EntityMessage message = db.message().getMessage(id); try { Log.i("Building preview id=" + id); - String html = message.read(context); - String text = (html == null ? null : Jsoup.parse(html).text()); - String preview = (text == null ? null : text.substring(0, Math.min(text.length(), 250))); - db.message().setMessageContent(message.id, true, preview); + String body = message.read(context); + db.message().setMessageContent( + message.id, true, HtmlHelper.getPreview(body)); } catch (IOException ex) { Log.e(ex); db.message().setMessageContent(message.id, false, null); diff --git a/app/src/main/java/eu/faircode/email/HtmlHelper.java b/app/src/main/java/eu/faircode/email/HtmlHelper.java index 9c08fbc819..fe83a32c83 100644 --- a/app/src/main/java/eu/faircode/email/HtmlHelper.java +++ b/app/src/main/java/eu/faircode/email/HtmlHelper.java @@ -247,4 +247,9 @@ public class HtmlHelper { Html.escapeHtml(MessageHelper.getFormattedAddresses(message.from, true)), sanitize ? sanitize(html, true) : getBody(html)); } + + static String getPreview(String body) { + String text = (body == null ? null : Jsoup.parse(body).text()); + return (text == null ? null : text.substring(0, Math.min(text.length(), 250))); + } } diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index ff56632140..7cc8cd08e8 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -2475,11 +2475,10 @@ public class ServiceSynchronize extends LifecycleService { if (!message.content) if (!metered || (message.size != null && message.size < download)) { - String html = helper.getHtml(); - String text = (html == null ? null : Jsoup.parse(html).text()); - String preview = (text == null ? null : text.substring(0, Math.min(text.length(), PREVIEW_SIZE))); - message.write(context, html); - db.message().setMessageContent(message.id, true, preview); + String body = helper.getHtml(); + message.write(context, body); + db.message().setMessageContent( + message.id, true, HtmlHelper.getPreview(body)); Log.i(folder.name + " downloaded message id=" + message.id + " size=" + message.size); }