From f9af0b1c1a4a4cd1bf003c63db335903aefc7ff2 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 2 Feb 2020 14:05:49 +0100 Subject: [PATCH] Added blocking sender domain --- .../eu/faircode/email/AdapterMessage.java | 16 +++++- .../eu/faircode/email/FragmentMessages.java | 56 ++++++++++--------- app/src/main/res/layout/dialog_junk.xml | 15 ++++- app/src/main/res/values/strings.xml | 1 + 4 files changed, 58 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index 7305459fcd..aa5cc2d1bb 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -4951,17 +4951,27 @@ public class AdapterMessage extends RecyclerView.Adapter 0)) { + String sender = ((InternetAddress) message.from[0]).getAddress(); + String name = MessageHelper.formatAddresses(new Address[]{message.from[0]}); - JSONObject jsender = new JSONObject(); - jsender.put("value", sender); - jsender.put("regex", false); - - JSONObject jcondition = new JSONObject(); - jcondition.put("sender", jsender); - - JSONObject jaction = new JSONObject(); - jaction.put("type", EntityRule.TYPE_MOVE); - jaction.put("target", junk.id); - - EntityRule rule = new EntityRule(); - rule.folder = message.folder; - rule.name = context.getString(R.string.title_block, name); - rule.order = 1000; - rule.enabled = true; - rule.stop = true; - rule.condition = jcondition.toString(); - rule.action = jaction.toString(); - rule.id = db.rule().insertRule(rule); + if (block_domain) { + int at = sender.indexOf('@'); + if (at > 0) + sender = sender.substring(at); } + JSONObject jsender = new JSONObject(); + jsender.put("value", sender); + jsender.put("regex", false); + + JSONObject jcondition = new JSONObject(); + jcondition.put("sender", jsender); + + JSONObject jaction = new JSONObject(); + jaction.put("type", EntityRule.TYPE_MOVE); + jaction.put("target", junk.id); + + EntityRule rule = new EntityRule(); + rule.folder = message.folder; + rule.name = context.getString(R.string.title_block, name); + rule.order = 1000; + rule.enabled = true; + rule.stop = true; + rule.condition = jcondition.toString(); + rule.action = jaction.toString(); + rule.id = db.rule().insertRule(rule); + } db.setTransactionSuccessful(); } finally { diff --git a/app/src/main/res/layout/dialog_junk.xml b/app/src/main/res/layout/dialog_junk.xml index bc2f73e39d..5636d6070f 100644 --- a/app/src/main/res/layout/dialog_junk.xml +++ b/app/src/main/res/layout/dialog_junk.xml @@ -21,7 +21,7 @@ app:layout_constraintTop_toTopOf="parent" /> + + + app:layout_constraintTop_toBottomOf="@+id/cbBlockDomain" /> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 057d1a1067..247c00de43 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -87,6 +87,7 @@ Block %1$s Block sender + Block sender domain Blocking a sender will create a rule to automatically move future messages to the spam folder. Creating and using rules is a pro feature.