From 0fd0aba645ea4335586a8f535f1ecdf923a15bf3 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 9 Nov 2019 08:55:42 +0100 Subject: [PATCH] Added mark read option to snooze rule --- app/src/main/java/eu/faircode/email/EntityRule.java | 4 ++++ .../main/java/eu/faircode/email/FragmentRule.java | 4 ++++ app/src/main/res/layout/fragment_rule.xml | 13 +++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index f636afcc84..41e8950c8a 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -454,6 +454,7 @@ public class EntityRule { private boolean onActionSnooze(Context context, EntityMessage message, JSONObject jargs) throws JSONException { int duration = jargs.getInt("duration"); boolean schedule_end = jargs.optBoolean("schedule_end", false); + boolean seen = jargs.optBoolean("seen", false); long wakeup; if (schedule_end) { @@ -476,6 +477,9 @@ public class EntityRule { message.ui_snoozed = wakeup; + if (seen) + onActionSeen(context, message, true); + return true; } diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java index 54742e40ba..aefaf56246 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRule.java +++ b/app/src/main/java/eu/faircode/email/FragmentRule.java @@ -112,6 +112,7 @@ public class FragmentRule extends FragmentBase { private NumberPicker npDuration; private CheckBox cbScheduleEnd; + private CheckBox cbSnoozeSeen; private ViewButtonColor btnColor; @@ -218,6 +219,7 @@ public class FragmentRule extends FragmentBase { npDuration = view.findViewById(R.id.npDuration); cbScheduleEnd = view.findViewById(R.id.cbScheduleEnd); + cbSnoozeSeen = view.findViewById(R.id.cbSnoozeSeen); btnColor = view.findViewById(R.id.btnColor); @@ -676,6 +678,7 @@ public class FragmentRule extends FragmentBase { case EntityRule.TYPE_SNOOZE: npDuration.setValue(jaction.optInt("duration", 0)); cbScheduleEnd.setChecked(jaction.optBoolean("schedule_end", false)); + cbSnoozeSeen.setChecked(jaction.optBoolean("seen", false)); break; case EntityRule.TYPE_FLAG: @@ -969,6 +972,7 @@ public class FragmentRule extends FragmentBase { case EntityRule.TYPE_SNOOZE: jaction.put("duration", npDuration.getValue()); jaction.put("schedule_end", cbScheduleEnd.isChecked()); + jaction.put("seen", cbSnoozeSeen.isChecked()); break; case EntityRule.TYPE_FLAG: diff --git a/app/src/main/res/layout/fragment_rule.xml b/app/src/main/res/layout/fragment_rule.xml index 837fdfb9c9..f5c5041f71 100644 --- a/app/src/main/res/layout/fragment_rule.xml +++ b/app/src/main/res/layout/fragment_rule.xml @@ -514,6 +514,15 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/npDuration" /> + + + app:layout_constraintTop_toBottomOf="@id/cbSnoozeSeen" /> + app:constraint_referenced_ids="tvHours,npDuration,cbScheduleEnd,cbSnoozeSeen" />