diff --git a/app/src/main/java/eu/faircode/email/EntityOperation.java b/app/src/main/java/eu/faircode/email/EntityOperation.java index 090d2b0337..49271843af 100644 --- a/app/src/main/java/eu/faircode/email/EntityOperation.java +++ b/app/src/main/java/eu/faircode/email/EntityOperation.java @@ -142,6 +142,12 @@ public class EntityOperation { db.message().setMessageUiFlagged(similar.id, flagged, flagged ? color : null); queue(context, similar.account, similar.folder, similar.id, name, jargs); } + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + boolean auto_important = prefs.getBoolean("auto_important", false); + if (auto_important && flagged) + db.message().setMessageImportance(message.id, 2); + return; } else if (ANSWERED.equals(name)) { diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index 7ce6174071..fd0ea65857 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -59,6 +59,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swAutoRead; private SwitchCompat swFlagSnoozed; private SwitchCompat swAutoUnflag; + private SwitchCompat swAutoImportant; private SwitchCompat swResetImportance; private SwitchCompat swDiscardDelete; private NumberPicker npDefaultSnooze; @@ -67,7 +68,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe "double_back", "pull", "autoscroll", "doubletap", "swipenav", "volumenav", "reversed", "autoexpand", "expand_all", "expand_one", "collapse_multiple", "autoclose", "onclose", "quick_filter", "quick_scroll", - "autoread", "flag_snoozed", "autounflag", "reset_importance", "discard_delete", + "autoread", "flag_snoozed", "autounflag", "auto_important", "reset_importance", "discard_delete", "default_snooze" }; @@ -99,6 +100,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swAutoRead = view.findViewById(R.id.swAutoRead); swFlagSnoozed = view.findViewById(R.id.swFlagSnoozed); swAutoUnflag = view.findViewById(R.id.swAutoUnflag); + swAutoImportant = view.findViewById(R.id.swAutoImportant); swResetImportance = view.findViewById(R.id.swResetImportance); swDiscardDelete = view.findViewById(R.id.swDiscardDelete); npDefaultSnooze = view.findViewById(R.id.npDefaultSnooze); @@ -252,6 +254,13 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe } }); + swAutoImportant.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("auto_important", checked).apply(); + } + }); + swResetImportance.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -352,6 +361,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swAutoRead.setChecked(prefs.getBoolean("autoread", false)); swFlagSnoozed.setChecked(prefs.getBoolean("flag_snoozed", false)); swAutoUnflag.setChecked(prefs.getBoolean("autounflag", false)); + swAutoImportant.setChecked(prefs.getBoolean("auto_important", false)); swResetImportance.setChecked(prefs.getBoolean("reset_importance", false)); swDiscardDelete.setChecked(prefs.getBoolean("discard_delete", false)); diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index 2e2cb14bfa..9ebdaf4ec9 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -265,6 +265,17 @@ app:layout_constraintTop_toBottomOf="@id/swFlagSnoozed" app:switchPadding="12dp" /> + + Automatically mark messages read on moving messages Automatically add star on snoozing messages Automatically remove stars from messages on moving messages + Automatically make starred messages important Reset importance on moving messages On discard draft permanently delete draft Default snooze time