Added extended reply header

This commit is contained in:
M66B 2019-11-07 08:56:54 +01:00
parent 772698cf2b
commit 0f6b2b316a
4 changed files with 56 additions and 7 deletions

View File

@ -2520,11 +2520,38 @@ public class FragmentCompose extends FragmentBase {
if ("reply".equals(action) || "reply_all".equals(action))
refText = "<blockquote>" + refText + "</blockquote>";
String refBody = String.format("<p>%s %s:</p>\n%s",
Html.escapeHtml(new Date(ref.received).toString()),
Html.escapeHtml(MessageHelper.formatAddresses(ref.from)),
refText);
Helper.writeText(data.draft.getRefFile(context), refBody);
// Build reply header
StringBuilder sb = new StringBuilder();
boolean extended_reply = prefs.getBoolean("extended_reply", false);
if (extended_reply) {
sb.append("<p>");
if (ref.from != null && ref.from.length > 0)
sb.append("<strong>").append(context.getString(R.string.title_from)).append("</strong> ")
.append(Html.escapeHtml(MessageHelper.formatAddresses(ref.from)))
.append("<br>\n");
if (ref.to != null && ref.to.length > 0)
sb.append("<strong>").append(context.getString(R.string.title_to)).append("</strong> ")
.append(Html.escapeHtml(MessageHelper.formatAddresses(ref.to))).
append("<br>\n");
if (ref.cc != null && ref.cc.length > 0)
sb.append("<strong>").append(context.getString(R.string.title_cc)).append("</strong> ")
.append(Html.escapeHtml(MessageHelper.formatAddresses(ref.cc)))
.append("<br>\n");
sb.append("<strong>").append(context.getString(R.string.title_received)).append("</strong> ")
.append(Html.escapeHtml(new Date(ref.received).toString()))
.append("<br>\n");
sb.append("<strong>").append(context.getString(R.string.title_subject)).append("</strong> ")
.append(Html.escapeHtml(ref.subject == null ? "" : ref.subject));
sb.append("</p>\n");
} else {
sb.append("<p>");
sb.append(Html.escapeHtml(new Date(ref.received).toString())).append(" ");
sb.append(Html.escapeHtml(MessageHelper.formatAddresses(ref.from))).append(":");
sb.append("</p>\n");
}
sb.append(refText);
Helper.writeText(data.draft.getRefFile(context), sb.toString());
}
if ("new".equals(action)) {

View File

@ -48,6 +48,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
private SwitchCompat swSuggestReceived;
private Button btnLocalContacts;
private SwitchCompat swPrefixOnce;
private SwitchCompat swExtendedReply;
private SwitchCompat swPlainOnly;
private SwitchCompat swUsenetSignature;
private SwitchCompat swAutoResize;
@ -59,7 +60,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
private Spinner spSendDelayed;
private final static String[] RESET_OPTIONS = new String[]{
"keyboard", "suggest_sent", "suggested_received", "prefix_once", "plain_only", "usenet_signature",
"keyboard", "suggest_sent", "suggested_received", "prefix_once", "extended_reply", "plain_only", "usenet_signature",
"autoresize", "encrypt_default", "receipt_default", "resize", "lookup_mx", "send_delayed"
};
@ -78,6 +79,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
swSuggestReceived = view.findViewById(R.id.swSuggestReceived);
btnLocalContacts = view.findViewById(R.id.btnLocalContacts);
swPrefixOnce = view.findViewById(R.id.swPrefixOnce);
swExtendedReply = view.findViewById(R.id.swExtendedReply);
swPlainOnly = view.findViewById(R.id.swPlainOnly);
swUsenetSignature = view.findViewById(R.id.swUsenetSignature);
swAutoResize = view.findViewById(R.id.swAutoResize);
@ -130,6 +132,13 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
}
});
swExtendedReply.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("extended_reply", checked).apply();
}
});
swPlainOnly.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@ -250,6 +259,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
swSuggestSent.setChecked(prefs.getBoolean("suggest_sent", false));
swSuggestReceived.setChecked(prefs.getBoolean("suggest_received", false));
swPrefixOnce.setChecked(prefs.getBoolean("prefix_once", true));
swExtendedReply.setChecked(prefs.getBoolean("extended_reply", false));
swPlainOnly.setChecked(prefs.getBoolean("plain_only", false));
swUsenetSignature.setChecked(prefs.getBoolean("usenet_signature", false));

View File

@ -108,6 +108,17 @@
app:layout_constraintTop_toBottomOf="@id/btnLocalContacts"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swExtendedReply"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_advanced_extended_reply"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swPrefixOnce"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swPlainOnly"
android:layout_width="0dp"
@ -116,7 +127,7 @@
android:text="@string/title_advanced_plain_only"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swPrefixOnce"
app:layout_constraintTop_toBottomOf="@id/swExtendedReply"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat

View File

@ -229,6 +229,7 @@
<string name="title_advanced_suggest_sent">Suggest addresses found in sent messages</string>
<string name="title_advanced_suggest_received">Suggest addresses found in received messages</string>
<string name="title_advanced_prefix_once">Prefix subject only once on replying or forwarding</string>
<string name="title_advanced_extended_reply">Use extended reply header</string>
<string name="title_advanced_plain_only">Send plain text only by default</string>
<string name="title_advanced_usenet_signature">Usenet signature convention</string>
<string name="title_advanced_autoresize">Automatically resize attached and embedded images</string>