Added option to select receipt type

pull/175/head
M66B 5 years ago
parent 6adb5fc0b9
commit 7258967508

@ -4414,7 +4414,7 @@ public class FragmentCompose extends FragmentBase {
final TextView tvVia = dview.findViewById(R.id.tvVia);
final CheckBox cbPlainOnly = dview.findViewById(R.id.cbPlainOnly);
final CheckBox cbReceipt = dview.findViewById(R.id.cbReceipt);
final TextView tvReceipt = dview.findViewById(R.id.tvReceipt);
final TextView tvReceipt = dview.findViewById(R.id.tvReceiptType);
final Spinner spEncrypt = dview.findViewById(R.id.spEncrypt);
final Spinner spPriority = dview.findViewById(R.id.spPriority);
final TextView tvSendAt = dview.findViewById(R.id.tvSendAt);

@ -51,6 +51,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
private SwitchCompat swExtendedReply;
private SwitchCompat swQuoteReply;
private SwitchCompat swPlainOnly;
private Spinner spReceiptType;
private Spinner spSignatureLocation;
private SwitchCompat swUsenetSignature;
private SwitchCompat swRemoveSignatures;
@ -66,7 +67,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
private final static String[] RESET_OPTIONS = new String[]{
"keyboard", "suggest_sent", "suggested_received",
"prefix_once", "extended_reply", "quote_reply",
"plain_only", "signature_location", "usenet_signature", "remove_signatures",
"plain_only", "receipt_type", "signature_location", "usenet_signature", "remove_signatures",
"resize_images", "resize_attachments", "send_reminders", "receipt_default", "resize", "lookup_mx", "send_delayed"
};
@ -88,6 +89,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
swExtendedReply = view.findViewById(R.id.swExtendedReply);
swQuoteReply = view.findViewById(R.id.swQuoteReply);
swPlainOnly = view.findViewById(R.id.swPlainOnly);
spReceiptType = view.findViewById(R.id.spReceiptType);
spSignatureLocation = view.findViewById(R.id.spSignatureLocation);
swUsenetSignature = view.findViewById(R.id.swUsenetSignature);
swRemoveSignatures = view.findViewById(R.id.swRemoveSignatures);
@ -163,6 +165,18 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
}
});
spReceiptType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
prefs.edit().putInt("receipt_type", position).apply();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
prefs.edit().remove("receipt_type").apply();
}
});
spSignatureLocation.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
@ -307,6 +321,9 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
swQuoteReply.setChecked(prefs.getBoolean("quote_reply", true));
swPlainOnly.setChecked(prefs.getBoolean("plain_only", false));
int receipt_type = prefs.getInt("receipt_type", 2);
spReceiptType.setSelection(receipt_type);
int signature_location = prefs.getInt("signature_location", 1);
spSignatureLocation.setSelection(signature_location);

@ -231,11 +231,19 @@ public class MessageHelper {
if (message.receipt_request != null && message.receipt_request) {
String to = (identity.replyto == null ? identity.email : identity.replyto);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
int receipt_type = prefs.getInt("receipt_type", 2);
// 0=Read receipt
// 1=Delivery receipt
// 2=Read+delivery receipt
// defacto standard
imessage.addHeader("Return-Receipt-To", to);
if (receipt_type == 1 || receipt_type == 2) // Delivery receipt
imessage.addHeader("Return-Receipt-To", to);
// https://tools.ietf.org/html/rfc3798
imessage.addHeader("Disposition-Notification-To", to);
if (receipt_type == 0 || receipt_type == 2) // Read receipt
imessage.addHeader("Disposition-Notification-To", to);
}
}

@ -126,7 +126,7 @@
app:layout_constraintTop_toBottomOf="@id/cbPlainOnly" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvReceipt"
android:id="@+id/tvReceiptType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_send_receipt_remark"
@ -143,7 +143,7 @@
android:text="@string/title_send_encryption"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvReceipt" />
app:layout_constraintTop_toBottomOf="@id/tvReceiptType" />
<Spinner
android:id="@+id/spEncrypt"

@ -333,7 +333,7 @@
app:srcCompat="@drawable/baseline_playlist_add_check_24" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvReceipt"
android:id="@+id/tvReceiptType"
android:layout_width="0dp"
android:layout_height="0dp"
android:gravity="center_vertical"

@ -134,6 +134,28 @@
app:layout_constraintTop_toBottomOf="@id/swQuoteReply"
app:switchPadding="12dp" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvReceiptType"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginEnd="48dp"
android:text="@string/title_advanced_receipt"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swPlainOnly" />
<Spinner
android:id="@+id/spReceiptType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:entries="@array/receiptNames"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvReceiptType" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvSignatureLocation"
android:layout_width="0dp"
@ -145,7 +167,7 @@
android:textColor="?android:attr/textColorPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swPlainOnly" />
app:layout_constraintTop_toBottomOf="@id/spReceiptType" />
<Spinner
android:id="@+id/spSignatureLocation"

@ -277,6 +277,7 @@
<string name="title_advanced_signature_location">Signature position</string>
<string name="title_advanced_signature_end">Add signature after quoted/forwarded message</string>
<string name="title_advanced_plain_only">Send plain text only by default</string>
<string name="title_advanced_receipt">When requesting a receipt</string>
<string name="title_advanced_usenet_signature">Usenet signature convention</string>
<string name="title_advanced_remove_signatures">Remove recognized signatures</string>
<string name="title_advanced_resize_images">Automatically resize embedded images</string>
@ -807,7 +808,7 @@
<string name="title_no_key">No private key</string>
<string name="title_invalid_key">Invalid private key</string>
<string name="title_send_plain_text">Plain text only</string>
<string name="title_send_receipt">Request delivery/read receipt</string>
<string name="title_send_receipt">Request receipt</string>
<string name="title_send_receipt_remark">Most providers and email clients ignore receipt requests</string>
<string name="title_from_missing">Sender missing</string>
@ -1357,6 +1358,12 @@
<item>Large</item>
</string-array>
<string-array name="receiptNames">
<item>Read receipt</item>
<item>Delivery receipt</item>
<item>Read+delivery receipt</item>
</string-array>
<string-array name="signatureNames">
<item>Above the text</item>
<item>Below the text</item>

Loading…
Cancel
Save