diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java
index 723fb7ee03..4ee794afae 100644
--- a/app/src/main/java/eu/faircode/email/ApplicationEx.java
+++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java
@@ -162,8 +162,9 @@ public class ApplicationEx extends Application {
editor.putBoolean("reversed", true);
editor.remove("swipe_reversed");
}
- }
+ } else if (version < 741)
+ editor.remove("send_dialog");
if (BuildConfig.DEBUG && false) {
editor.remove("app_support");
diff --git a/app/src/main/java/eu/faircode/email/EntityIdentity.java b/app/src/main/java/eu/faircode/email/EntityIdentity.java
index 6f6d2b70f8..d75eff3627 100644
--- a/app/src/main/java/eu/faircode/email/EntityIdentity.java
+++ b/app/src/main/java/eu/faircode/email/EntityIdentity.java
@@ -91,11 +91,11 @@ public class EntityIdentity {
@NonNull
public Boolean plain_only = false; // obsolete
@NonNull
- public Boolean encrypt = false;
+ public Boolean encrypt = false; // obsolete
@NonNull
- public Boolean delivery_receipt = false;
+ public Boolean delivery_receipt = false; // obsolete
@NonNull
- public Boolean read_receipt = false;
+ public Boolean read_receipt = false; // obsolete
@NonNull
public Boolean store_sent = false; // obsolete
public Long sent_folder = null; // obsolete
@@ -179,8 +179,6 @@ public class EntityIdentity {
// not plain_only
json.put("encrypt", encrypt);
- json.put("delivery_receipt", delivery_receipt);
- json.put("read_receipt", read_receipt);
// not store_sent
// not sent_folder
// not sign_key
@@ -229,10 +227,6 @@ public class EntityIdentity {
if (json.has("encrypt"))
identity.encrypt = json.getBoolean("encrypt");
- if (json.has("delivery_receipt"))
- identity.delivery_receipt = json.getBoolean("delivery_receipt");
- if (json.has("read_receipt"))
- identity.read_receipt = json.getBoolean("read_receipt");
return identity;
}
@@ -263,8 +257,6 @@ public class EntityIdentity {
Objects.equals(this.replyto, other.replyto) &&
Objects.equals(this.bcc, other.bcc) &&
this.encrypt.equals(other.encrypt) &&
- this.delivery_receipt.equals(other.delivery_receipt) &&
- this.read_receipt.equals(other.read_receipt) &&
Objects.equals(this.tbd, other.tbd) &&
Objects.equals(this.state, other.state) &&
Objects.equals(this.error, other.error) &&
diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java
index 3b6d7a2bad..5423be4839 100644
--- a/app/src/main/java/eu/faircode/email/FragmentCompose.java
+++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java
@@ -1988,6 +1988,8 @@ public class FragmentCompose extends FragmentBase {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean text_color = prefs.getBoolean("text_color", true);
boolean plain_only = prefs.getBoolean("plain_only", false);
+ boolean encrypt_default = prefs.getBoolean("encrypt_default", false);
+ boolean receipt_default = prefs.getBoolean("receipt_default", false);
Log.i("Load draft action=" + action + " id=" + id + " reference=" + reference);
@@ -2020,6 +2022,13 @@ public class FragmentCompose extends FragmentBase {
data.draft = new EntityMessage();
data.draft.msgid = EntityMessage.generateMessageId();
+ if (plain_only)
+ data.draft.plain_only = true;
+ if (encrypt_default)
+ data.draft.encrypt = true;
+ if (receipt_default)
+ data.draft.receipt_request = true;
+
if (ref == null) {
data.draft.thread = data.draft.msgid;
@@ -2090,8 +2099,10 @@ public class FragmentCompose extends FragmentBase {
if ("reply_all".equals(action))
data.draft.cc = ref.getAllRecipients(data.identities);
- else if ("receipt".equals(action))
+ else if ("receipt".equals(action)) {
data.draft.receipt = true;
+ data.draft.receipt_request = false;
+ }
} else if ("forward".equals(action) || "editasnew".equals(action))
data.draft.thread = data.draft.msgid; // new thread
@@ -2130,7 +2141,8 @@ public class FragmentCompose extends FragmentBase {
} else if ("participation".equals(action))
data.draft.subject = status + ": " + ref.subject;
- data.draft.plain_only = ref.plain_only;
+ if (ref.plain_only)
+ data.draft.plain_only = ref.plain_only;
if (answer > 0) {
EntityAnswer a = db.answer().getAnswer(answer);
@@ -2139,9 +2151,6 @@ public class FragmentCompose extends FragmentBase {
}
}
- if (plain_only)
- data.draft.plain_only = true;
-
// Select identity matching from address
Address from = null;
EntityIdentity selected = null;
@@ -2807,12 +2816,6 @@ public class FragmentCompose extends FragmentBase {
if (draft.to == null && draft.cc == null && draft.bcc == null)
throw new IllegalArgumentException(context.getString(R.string.title_to_missing));
- db.message().setMessagePlainOnly(draft.id, identity.plain_only);
-
- db.message().setMessageEncrypt(draft.id, identity.encrypt);
-
- db.message().setMessageReceiptRequest(draft.id, identity.delivery_receipt || identity.read_receipt);
-
if (TextUtils.isEmpty(draft.subject))
args.putBoolean("remind_subject", true);
@@ -3620,6 +3623,10 @@ public class FragmentCompose extends FragmentBase {
cbEncrypt.setChecked(draft.encrypt != null && draft.encrypt);
cbReceipt.setChecked(draft.receipt_request != null && draft.receipt_request);
+ cbPlainOnly.setVisibility(draft.receipt != null && draft.receipt ? View.GONE : View.VISIBLE);
+ cbEncrypt.setVisibility(draft.receipt != null && draft.receipt ? View.GONE : View.VISIBLE);
+ cbReceipt.setVisibility(draft.receipt != null && draft.receipt ? View.GONE : View.VISIBLE);
+
int priority = (draft.priority == null ? 1 : draft.priority);
spPriority.setTag(priority);
spPriority.setSelection(priority);
diff --git a/app/src/main/java/eu/faircode/email/FragmentIdentity.java b/app/src/main/java/eu/faircode/email/FragmentIdentity.java
index b004adcc59..86fa6cb397 100644
--- a/app/src/main/java/eu/faircode/email/FragmentIdentity.java
+++ b/app/src/main/java/eu/faircode/email/FragmentIdentity.java
@@ -108,9 +108,6 @@ public class FragmentIdentity extends FragmentBase {
private TextView etSenderExtra;
private EditText etReplyTo;
private EditText etBcc;
- private TextView tvEncryptPro;
- private CheckBox cbEncrypt;
- private CheckBox cbReceipt;
private Button btnSave;
private ContentLoadingProgressBar pbSave;
@@ -188,9 +185,6 @@ public class FragmentIdentity extends FragmentBase {
etSenderExtra = view.findViewById(R.id.etSenderExtra);
etReplyTo = view.findViewById(R.id.etReplyTo);
etBcc = view.findViewById(R.id.etBcc);
- tvEncryptPro = view.findViewById(R.id.tvEncryptPro);
- cbEncrypt = view.findViewById(R.id.cbEncrypt);
- cbReceipt = view.findViewById(R.id.cbReceipt);
btnSave = view.findViewById(R.id.btnSave);
pbSave = view.findViewById(R.id.pbSave);
@@ -425,8 +419,6 @@ public class FragmentIdentity extends FragmentBase {
cbInsecure.setVisibility(View.GONE);
tilPassword.setEndIconMode(id < 0 ? END_ICON_PASSWORD_TOGGLE : END_ICON_NONE);
- Helper.linkPro(tvEncryptPro);
-
btnAdvanced.setVisibility(View.GONE);
btnSave.setVisibility(View.GONE);
@@ -509,8 +501,6 @@ public class FragmentIdentity extends FragmentBase {
args.putString("sender_extra_regex", etSenderExtra.getText().toString());
args.putString("replyto", etReplyTo.getText().toString().trim());
args.putString("bcc", etBcc.getText().toString().trim());
- args.putBoolean("encrypt", cbEncrypt.isChecked());
- args.putBoolean("receipt", cbReceipt.isChecked());
args.putLong("account", account == null ? -1 : account.id);
args.putString("host", etHost.getText().toString());
args.putBoolean("starttls", rgEncryption.getCheckedRadioButtonId() == R.id.radio_starttls);
@@ -575,8 +565,6 @@ public class FragmentIdentity extends FragmentBase {
String sender_extra_regex = args.getString("sender_extra_regex");
String replyto = args.getString("replyto");
String bcc = args.getString("bcc");
- boolean encrypt = args.getBoolean("encrypt");
- boolean receipt = args.getBoolean("receipt");
boolean should = args.getBoolean("should");
@@ -685,12 +673,6 @@ public class FragmentIdentity extends FragmentBase {
return true;
if (!Objects.equals(identity.bcc, bcc))
return true;
- if (!Objects.equals(identity.encrypt, encrypt))
- return true;
- if (!Objects.equals(identity.delivery_receipt, receipt))
- return true;
- if (!Objects.equals(identity.read_receipt, receipt))
- return true;
if (identity.error != null)
return true;
@@ -753,9 +735,6 @@ public class FragmentIdentity extends FragmentBase {
identity.sender_extra_regex = sender_extra_regex;
identity.replyto = replyto;
identity.bcc = bcc;
- identity.encrypt = encrypt;
- identity.delivery_receipt = receipt;
- identity.read_receipt = receipt;
identity.sent_folder = null;
identity.sign_key = null;
identity.error = null;
@@ -890,8 +869,6 @@ public class FragmentIdentity extends FragmentBase {
etSenderExtra.setText(identity == null ? null : identity.sender_extra_regex);
etReplyTo.setText(identity == null ? null : identity.replyto);
etBcc.setText(identity == null ? null : identity.bcc);
- cbEncrypt.setChecked(identity == null ? false : identity.encrypt);
- cbReceipt.setChecked(identity == null ? false : identity.delivery_receipt || identity.read_receipt);
auth = (identity == null ? MailService.AUTH_TYPE_PASSWORD : identity.auth_type);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
index caedc87d9a..c17769ba6f 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java
@@ -49,12 +49,14 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
private SwitchCompat swAutoResize;
private Spinner spAutoResize;
private TextView tvAutoResize;
+ private SwitchCompat swEncrypt;
+ private SwitchCompat swReceipt;
private SwitchCompat swLookupMx;
private Spinner spSendDelayed;
private final static String[] RESET_OPTIONS = new String[]{
"keyboard", "suggest_sent", "suggested_received", "prefix_once", "plain_only", "usenet_signature",
- "autoresize", "resize", "lookup_mx", "send_delayed"
+ "autoresize", "encrypt_default", "receipt_default", "resize", "lookup_mx", "send_delayed"
};
@Override
@@ -76,6 +78,8 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
swAutoResize = view.findViewById(R.id.swAutoResize);
spAutoResize = view.findViewById(R.id.spAutoResize);
tvAutoResize = view.findViewById(R.id.tvAutoResize);
+ swEncrypt = view.findViewById(R.id.swEncrypt);
+ swReceipt = view.findViewById(R.id.swReceipt);
swLookupMx = view.findViewById(R.id.swLookupMx);
spSendDelayed = view.findViewById(R.id.spSendDelayed);
@@ -149,6 +153,20 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
}
});
+ swEncrypt.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+ prefs.edit().putBoolean("encrypt_default", checked).apply();
+ }
+ });
+
+ swReceipt.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
+ prefs.edit().putBoolean("receipt_default", checked).apply();
+ }
+ });
+
swLookupMx.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@@ -234,6 +252,8 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc
}
spAutoResize.setEnabled(swAutoResize.isChecked());
+ swEncrypt.setChecked(prefs.getBoolean("encrypt_default", false));
+ swReceipt.setChecked(prefs.getBoolean("receipt_default", false));
swLookupMx.setChecked(prefs.getBoolean("lookup_mx", false));
int send_delayed = prefs.getInt("send_delayed", 0);
diff --git a/app/src/main/res/layout/fragment_identity.xml b/app/src/main/res/layout/fragment_identity.xml
index 126480bbdb..bceb81a612 100644
--- a/app/src/main/res/layout/fragment_identity.xml
+++ b/app/src/main/res/layout/fragment_identity.xml
@@ -561,36 +561,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvBcc" />
-
-
-
-
-
-
+ app:layout_constraintTop_toBottomOf="@id/etBcc" />
+ tvReplyTo,etReplyTo,tvBcc,etBcc" />
diff --git a/app/src/main/res/layout/fragment_options_send.xml b/app/src/main/res/layout/fragment_options_send.xml
index c3cd9651ce..cc890466eb 100644
--- a/app/src/main/res/layout/fragment_options_send.xml
+++ b/app/src/main/res/layout/fragment_options_send.xml
@@ -135,6 +135,28 @@
app:layout_constraintStart_toEndOf="@id/spAutoResize"
app:layout_constraintTop_toTopOf="@id/spAutoResize" />
+
+
+
+