diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 1f0e954614..01431903c0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -254,6 +254,7 @@ public class FragmentCompose extends FragmentBase { private TextView tvReference; private ImageButton ibCloseRefHint; private ImageButton ibWriteAboveBelow; + private ImageView ivResend; private ImageButton ibReferenceEdit; private ImageButton ibReferenceImages; private View vwAnchor; @@ -376,6 +377,7 @@ public class FragmentCompose extends FragmentBase { tvReference = view.findViewById(R.id.tvReference); ibCloseRefHint = view.findViewById(R.id.ibCloseRefHint); ibWriteAboveBelow = view.findViewById(R.id.ibWriteAboveBelow); + ivResend = view.findViewById(R.id.ivResend); ibReferenceEdit = view.findViewById(R.id.ibReferenceEdit); ibReferenceImages = view.findViewById(R.id.ibReferenceImages); vwAnchor = view.findViewById(R.id.vwAnchor); @@ -953,6 +955,7 @@ public class FragmentCompose extends FragmentBase { grpSignature.setVisibility(View.GONE); grpReferenceHint.setVisibility(View.GONE); ibWriteAboveBelow.setVisibility(View.GONE); + ivResend.setVisibility(View.GONE); ibReferenceEdit.setVisibility(View.GONE); ibReferenceImages.setVisibility(View.GONE); tvReference.setVisibility(View.GONE); @@ -4696,6 +4699,17 @@ public class FragmentCompose extends FragmentBase { else data.draft.signature = false; + if (ref.content && "resend".equals(action)) { + document = JsoupEx.parse(ref.getFile(context)); + // Save original body + Element div = document.body() + .tagName("div") + .attr("fairemail", "reference"); + Element body = document.createElement("body") + .appendChild(div); + document.body().replaceWith(body); + } + // Reply header if (ref.content && !"resend".equals(action) && @@ -6377,6 +6391,7 @@ public class FragmentCompose extends FragmentBase { ibWriteAboveBelow.setVisibility(text[1] == null || draft.wasforwardedfrom != null || BuildConfig.PLAY_STORE_RELEASE ? View.GONE : View.VISIBLE); + ivResend.setVisibility(draft.headers == null ? View.GONE : View.VISIBLE); ibReferenceEdit.setVisibility(text[1] == null ? View.GONE : View.VISIBLE); ibReferenceImages.setVisibility(ref_has_images && !show_images ? View.VISIBLE : View.GONE); diff --git a/app/src/main/java/eu/faircode/email/MessageHelper.java b/app/src/main/java/eu/faircode/email/MessageHelper.java index e33211ae93..103585c78e 100644 --- a/app/src/main/java/eu/faircode/email/MessageHelper.java +++ b/app/src/main/java/eu/faircode/email/MessageHelper.java @@ -808,6 +808,15 @@ public class MessageHelper { // Build html body Document document = JsoupEx.parse(message.getFile(context)); + if (message.headers != null) { + Element body = document.body(); + if (body.children().size() == 1) { + // Restore original body + Element ref = body.children().get(0); + body.replaceWith(ref.tagName("body").removeAttr("fairemail")); + } + } + // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang if (message.language != null) document.body().attr("lang", message.language); diff --git a/app/src/main/res/layout/fragment_compose.xml b/app/src/main/res/layout/fragment_compose.xml index 5d5fd18a11..5bf2e34c80 100644 --- a/app/src/main/res/layout/fragment_compose.xml +++ b/app/src/main/res/layout/fragment_compose.xml @@ -424,6 +424,19 @@ app:layout_constraintTop_toBottomOf="@id/tvReferenceHint" app:srcCompat="@drawable/abovebelow" /> + +