From 2cf51238dc4b2abcc6d3c6e15565d4bf5e30c309 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 13 Aug 2019 15:01:23 +0200 Subject: [PATCH] Added headers to EML viewer --- .../java/eu/faircode/email/ActivityEml.java | 20 +++++++++ app/src/main/res/layout/activity_eml.xml | 45 ++++++++++++++----- 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityEml.java b/app/src/main/java/eu/faircode/email/ActivityEml.java index dafd15ec6b..66d2741459 100644 --- a/app/src/main/java/eu/faircode/email/ActivityEml.java +++ b/app/src/main/java/eu/faircode/email/ActivityEml.java @@ -25,7 +25,9 @@ import android.content.Context; import android.content.res.AssetFileDescriptor; import android.net.Uri; import android.os.Bundle; +import android.text.SpannableStringBuilder; import android.text.Spanned; +import android.text.style.ForegroundColorSpan; import android.view.View; import android.widget.TextView; @@ -54,6 +56,7 @@ public class ActivityEml extends ActivityBase { final TextView tvCc = findViewById(R.id.tvCc); final TextView tvBcc = findViewById(R.id.tvBcc); final TextView tvSubject = findViewById(R.id.tvSubject); + final TextView tvHeaders = findViewById(R.id.tvHeaders); final TextView tvParts = findViewById(R.id.tvParts); final TextView tvBody = findViewById(R.id.tvBody); final TextView tvHtml = findViewById(R.id.tvHtml); @@ -110,6 +113,21 @@ public class ActivityEml extends ActivityBase { result.bcc = MessageHelper.formatAddresses(helper.getBcc()); result.subject = helper.getSubject(); + String headers = helper.getHeaders(); + int colorAccent = Helper.resolveColor(context, R.attr.colorAccent); + SpannableStringBuilder ssb = new SpannableStringBuilder(headers); + int index = 0; + for (String line : headers.split("\n")) { + if (line.length() > 0 && !Character.isWhitespace(line.charAt(0))) { + int colon = line.indexOf(':'); + if (colon > 0) + ssb.setSpan(new ForegroundColorSpan(colorAccent), index, index + colon, 0); + } + index += line.length() + 1; + } + + result.headers = ssb; + MessageHelper.MessageParts parts = helper.getMessageParts(); StringBuilder sb = new StringBuilder(); @@ -144,6 +162,7 @@ public class ActivityEml extends ActivityBase { tvCc.setText(result.cc); tvBcc.setText(result.bcc); tvSubject.setText(result.subject); + tvHeaders.setText(result.headers); tvParts.setText(result.parts); tvBody.setText(result.body); tvHtml.setText(result.html); @@ -168,6 +187,7 @@ public class ActivityEml extends ActivityBase { String cc; String bcc; String subject; + Spanned headers; Spanned parts; Spanned body; String html; diff --git a/app/src/main/res/layout/activity_eml.xml b/app/src/main/res/layout/activity_eml.xml index a1c9288a60..e2ab9a9652 100644 --- a/app/src/main/res/layout/activity_eml.xml +++ b/app/src/main/res/layout/activity_eml.xml @@ -133,7 +133,7 @@ app:layout_constraintTop_toBottomOf="@id/tvBcc" /> + + + + + tvFromTitle,tvFrom, + tvToTitle,tvTo, + tvReplyToTitle,tvReplyTo, + tvCcTitle,tvCc, + tvBccTitle,tvBcc, + tvSubject, + vSeparatorHeaders,tvHeaders, + vSeparatorParts,tvParts, + vSeparatorBody,tvBody, + vSeparatorHtml,tvHtml, + vSeparatorEml,tvEml" />