diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 3e5d7072be..44451625b3 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1937,13 +1937,14 @@ class Core { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean badge = prefs.getBoolean("badge", true); + boolean unseen_ignored = prefs.getBoolean("unseen_ignored", false); boolean pro = ActivityBilling.isPro(context); // Current int unseen = 0; Map> groupMessages = new HashMap<>(); for (TupleMessageEx message : messages) { - if (!message.ui_seen && message.ui_hide == 0) + if (!message.ui_seen && (!unseen_ignored || !message.ui_ignored) && message.ui_hide == 0) unseen++; // Check if notification channel enabled diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java index 4260c192f8..e29e7644ca 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java @@ -51,6 +51,7 @@ import static android.app.Activity.RESULT_OK; public class FragmentOptionsNotifications extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { private SwitchCompat swBadge; + private SwitchCompat swUnseenIgnored; private SwitchCompat swNotifyPreview; private CheckBox cbNotifyActionTrash; private CheckBox cbNotifyActionArchive; @@ -67,7 +68,9 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared private Group grpNotification; private final static String[] RESET_OPTIONS = new String[]{ - "badge", "notify_preview", "notify_trash", "notify_archive", "notify_reply", "notify_flag", "notify_seen", "light", "sound" + "badge", "unseen_ignored", + "notify_preview", "notify_trash", "notify_archive", "notify_reply", "notify_flag", "notify_seen", + "light", "sound" }; @Override @@ -81,6 +84,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared // Get controls swBadge = view.findViewById(R.id.swBadge); + swUnseenIgnored = view.findViewById(R.id.swUnseenIgnored); swNotifyPreview = view.findViewById(R.id.swNotifyPreview); cbNotifyActionTrash = view.findViewById(R.id.cbNotifyActionTrash); cbNotifyActionArchive = view.findViewById(R.id.cbNotifyActionArchive); @@ -111,6 +115,14 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared } }); + swUnseenIgnored.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("unseen_ignored", checked).apply(); + ServiceSynchronize.reload(getContext(), "unseen_ignored"); + } + }); + swNotifyPreview.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -246,6 +258,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); swBadge.setChecked(prefs.getBoolean("badge", true)); + swUnseenIgnored.setChecked(prefs.getBoolean("unseen_ignored", false)); swNotifyPreview.setChecked(prefs.getBoolean("notify_preview", true)); cbNotifyActionTrash.setChecked(prefs.getBoolean("notify_trash", true) || !pro); diff --git a/app/src/main/res/layout/fragment_options_notifications.xml b/app/src/main/res/layout/fragment_options_notifications.xml index cef970f037..3d376f6e2e 100644 --- a/app/src/main/res/layout/fragment_options_notifications.xml +++ b/app/src/main/res/layout/fragment_options_notifications.xml @@ -42,6 +42,17 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swBadge" /> + + Automatically recognize and disable tracking images Show launcher icon with number of new messages + Let the number of new messages match the number of notifications Show message preview in notifications Notification actions Trash