diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a696cce60..27b758f310 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ For support you can use [the contact form](https://contact.faircode.eu/?product= ### Next version +* Added rule action for silent notifications * Added option to disable Gmail labels button * Small improvements and minor bug fixes * Updated [AndroidX](https://developer.android.com/jetpack/androidx/versions/all-channel) diff --git a/app/src/main/assets/CHANGELOG.md b/app/src/main/assets/CHANGELOG.md index 5a696cce60..27b758f310 100644 --- a/app/src/main/assets/CHANGELOG.md +++ b/app/src/main/assets/CHANGELOG.md @@ -8,6 +8,7 @@ For support you can use [the contact form](https://contact.faircode.eu/?product= ### Next version +* Added rule action for silent notifications * Added option to disable Gmail labels button * Small improvements and minor bug fixes * Updated [AndroidX](https://developer.android.com/jetpack/androidx/versions/all-channel) diff --git a/app/src/main/java/eu/faircode/email/AdapterRule.java b/app/src/main/java/eu/faircode/email/AdapterRule.java index d786f7c052..75e7d5ab92 100644 --- a/app/src/main/java/eu/faircode/email/AdapterRule.java +++ b/app/src/main/java/eu/faircode/email/AdapterRule.java @@ -585,6 +585,8 @@ public class AdapterRule extends RecyclerView.Adapter { return R.string.title_rule_notes; case EntityRule.TYPE_URL: return R.string.title_rule_url; + case EntityRule.TYPE_SILENT: + return R.string.title_rule_silent; default: throw new IllegalArgumentException("Unknown action type=" + type); } diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index 85fef86e7c..53a095a379 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -133,6 +133,7 @@ public class EntityRule { static final int TYPE_LOCAL_ONLY = 17; static final int TYPE_NOTES = 18; static final int TYPE_URL = 19; + static final int TYPE_SILENT = 20; static final String ACTION_AUTOMATION = BuildConfig.APPLICATION_ID + ".AUTOMATION"; static final String EXTRA_RULE = "rule"; @@ -631,6 +632,8 @@ public class EntityRule { return onActionNotes(context, message, jaction, html); case TYPE_URL: return onActionUrl(context, message, jaction, html); + case TYPE_SILENT: + return onActionSilent(context, message, jaction); default: throw new IllegalArgumentException("Unknown rule type=" + type + " name=" + name); } @@ -719,6 +722,8 @@ public class EntityRule { if (TextUtils.isEmpty(url) || !Patterns.WEB_URL.matcher(url).matches()) throw new IllegalArgumentException(context.getString(R.string.title_rule_url_missing)); return; + case TYPE_SILENT: + return; default: throw new IllegalArgumentException("Unknown rule type=" + type); } @@ -1484,6 +1489,14 @@ public class EntityRule { return true; } + private boolean onActionSilent(Context context, EntityMessage message, JSONObject jargs) { + DB db = DB.getInstance(context); + db.message().setMessageUiSilent(message.id, true); + + message.ui_silent = true; + return true; + } + private static Calendar getRelativeCalendar(boolean all, int minutes, long reference) { int d = minutes / (24 * 60); int h = minutes / 60 % 24; diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java index 4708c8431c..da036fc30c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRule.java +++ b/app/src/main/java/eu/faircode/email/FragmentRule.java @@ -639,6 +639,7 @@ public class FragmentRule extends FragmentBase { actions.add(new Action(EntityRule.TYPE_UNSEEN, getString(R.string.title_rule_unseen))); actions.add(new Action(EntityRule.TYPE_HIDE, getString(R.string.title_rule_hide))); actions.add(new Action(EntityRule.TYPE_IGNORE, getString(R.string.title_rule_ignore))); + actions.add(new Action(EntityRule.TYPE_SILENT, getString(R.string.title_rule_silent))); if (BuildConfig.DEBUG) actions.add(new Action(EntityRule.TYPE_LOCAL_ONLY, getString(R.string.title_rule_local_only))); actions.add(new Action(EntityRule.TYPE_SNOOZE, getString(R.string.title_rule_snooze))); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1de3723b1b..f4273d465a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1985,6 +1985,7 @@ Automation Delete permanently Play sound + Silent notification Edit rule Rule applies to diff --git a/metadata/en-US/changelogs/2149.txt b/metadata/en-US/changelogs/2149.txt index dcaabceeba..41e98e8ab9 100644 --- a/metadata/en-US/changelogs/2149.txt +++ b/metadata/en-US/changelogs/2149.txt @@ -8,6 +8,7 @@ Ypupiara Next version +* Added rule action for silent notifications * Added option to disable Gmail labels button * Small improvements and minor bug fixes * Updated AndroidX