diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index dfaa7de63b..5d3cf85457 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -3081,17 +3081,20 @@ class Core { if (message.avatar == null && notify_known && pro) message.ui_ignored = true; - // For contact forms - boolean self = false; - if (identity != null && message.from != null) - for (Address from : message.from) - if (identity.sameAddress(from) || identity.similarAddress(from)) { - self = true; - break; - } - if (!self) { - String warning = message.checkReplyDomain(context); - message.reply_domain = (warning == null); + boolean check_reply_domain = prefs.getBoolean("check_reply_domain", true); + if (check_reply_domain) { + // For contact forms + boolean self = false; + if (identity != null && message.from != null) + for (Address from : message.from) + if (identity.sameAddress(from) || identity.similarAddress(from)) { + self = true; + break; + } + if (!self) { + String warning = message.checkReplyDomain(context); + message.reply_domain = (warning == null); + } } boolean check_mx = prefs.getBoolean("check_mx", false); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java index a6527ede58..5c3a220d6c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java @@ -81,6 +81,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr private SwitchCompat swSyncFolders; private SwitchCompat swSyncSharedFolders; private SwitchCompat swSubscriptions; + private SwitchCompat swCheckReply; private SwitchCompat swCheckMx; private SwitchCompat swTuneKeepAlive; private Group grpExempted; @@ -91,7 +92,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr "enabled", "poll_interval", "auto_optimize", "schedule", "schedule_start", "schedule_end", "sync_nodate", "sync_unseen", "sync_flagged", "delete_unseen", "sync_kept", "gmail_thread_id", "sync_folders", "sync_shared_folders", "subscriptions", - "check_mx", "tune_keep_alive" + "check_reply_domain", "check_mx", "tune_keep_alive" }; @Override @@ -134,6 +135,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr swSyncFolders = view.findViewById(R.id.swSyncFolders); swSyncSharedFolders = view.findViewById(R.id.swSyncSharedFolders); swSubscriptions = view.findViewById(R.id.swSubscriptions); + swCheckReply = view.findViewById(R.id.swCheckReply); swCheckMx = view.findViewById(R.id.swCheckMx); swTuneKeepAlive = view.findViewById(R.id.swTuneKeepAlive); grpExempted = view.findViewById(R.id.grpExempted); @@ -309,6 +311,13 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr } }); + swCheckReply.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("check_reply_domain", checked).apply(); + } + }); + swCheckMx.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -409,6 +418,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr swSyncSharedFolders.setChecked(prefs.getBoolean("sync_shared_folders", false)); swSyncSharedFolders.setEnabled(swSyncFolders.isChecked()); swSubscriptions.setChecked(prefs.getBoolean("subscriptions", false)); + swCheckReply.setChecked(prefs.getBoolean("check_reply_domain", true)); swCheckMx.setChecked(prefs.getBoolean("check_mx", false)); swTuneKeepAlive.setChecked(prefs.getBoolean("tune_keep_alive", true)); } diff --git a/app/src/main/res/layout/fragment_options_synchronize.xml b/app/src/main/res/layout/fragment_options_synchronize.xml index 6639bba401..204b47787d 100644 --- a/app/src/main/res/layout/fragment_options_synchronize.xml +++ b/app/src/main/res/layout/fragment_options_synchronize.xml @@ -493,6 +493,30 @@ app:layout_constraintTop_toBottomOf="@id/swSyncSharedFolders" app:switchPadding="12dp" /> + + + + Synchronize folder list Synchronize shared folder lists Manage folder subscriptions + Check reply address on synchronizing messages Check sender email addresses on synchronizing messages Automatically tune the keep-alive interval @@ -558,6 +559,7 @@ This will transfer extra data and consume extra battery power, especially if a lot of messages are stored on the device This only applies to newly received messages and can break existing groups Disabling this will reduce data and battery usage somewhat, but will disable updating the list of folders too + This will check if the domain name of the sender and the reply address are the same This will check if DNS MX records exist This will slow down synchronizing messages