diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index 759a478947..e3e919fa75 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -102,6 +102,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swPhotoPicker; private SwitchCompat swFlagSnoozed; private SwitchCompat swFlagUnsnoozed; + private SwitchCompat swImportantUnsnoozed; private SwitchCompat swAutoImportant; private SwitchCompat swResetSnooze; private SwitchCompat swAutoBlockSender; @@ -128,7 +129,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe "seen_delay", "autoclose", "onclose", "autoclose_unseen", "autoclose_send", "collapse_marked", "undo_timeout", - "autoread", "flag_snoozed", "flag_unsnoozed", "autounflag", "auto_important", "reset_importance", + "autoread", "flag_snoozed", "flag_unsnoozed", "autounflag", "important_unsnoozed", "auto_important", "reset_importance", "reset_snooze", "auto_block_sender", "auto_hide_answer", "swipe_reply", "move_thread_all", "move_thread_sent", "swipe_trash_all", "gmail_delete_all", "default_folder" @@ -189,6 +190,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swPhotoPicker = view.findViewById(R.id.swPhotoPicker); swFlagSnoozed = view.findViewById(R.id.swFlagSnoozed); swFlagUnsnoozed = view.findViewById(R.id.swFlagUnsnoozed); + swImportantUnsnoozed = view.findViewById(R.id.swImportantUnsnoozed); swAutoImportant = view.findViewById(R.id.swAutoImportant); swResetSnooze = view.findViewById(R.id.swResetSnooze); swAutoBlockSender = view.findViewById(R.id.swAutoBlockSender); @@ -571,6 +573,13 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe } }); + swImportantUnsnoozed.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("important_unsnoozed", checked).apply(); + } + }); + swAutoImportant.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -801,6 +810,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swFlagSnoozed.setChecked(prefs.getBoolean("flag_snoozed", false)); swFlagUnsnoozed.setChecked(prefs.getBoolean("flag_unsnoozed", false)); swFlagUnsnoozed.setEnabled(swFlagSnoozed.isChecked()); + swImportantUnsnoozed.setChecked(prefs.getBoolean("important_unsnoozed", false)); swAutoImportant.setChecked(prefs.getBoolean("auto_important", false)); swResetSnooze.setChecked(prefs.getBoolean("reset_snooze", true)); swAutoBlockSender.setChecked(prefs.getBoolean("auto_block_sender", true)); diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 7e78525850..821373b780 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1382,6 +1382,7 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ServiceSynchronize.this); boolean threading = prefs.getBoolean("threading", true); boolean flag_unsnoozed = prefs.getBoolean("flag_unsnoozed", false); + boolean important_unsnoozed = prefs.getBoolean("important_unsnoozed", false); // Show thread List messages = db.message().getMessagesByThread( @@ -1392,6 +1393,12 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences db.message().setMessageUnsnoozed(message.id, true); if (flag_unsnoozed) EntityOperation.queue(ServiceSynchronize.this, message, EntityOperation.FLAG, false); + if (important_unsnoozed) { + db.message().setMessageImportance(message.id, EntityMessage.PRIORITIY_HIGH); + EntityOperation.queue(ServiceSynchronize.this, message, EntityOperation.KEYWORD, + MessageHelper.FLAG_HIGH_IMPORTANCE, true); + + } EntityOperation.queue(ServiceSynchronize.this, message, EntityOperation.SEEN, false, false); } diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index 34def9edcf..12f2a80a4c 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -822,6 +822,17 @@ app:layout_constraintTop_toBottomOf="@id/swFlagSnoozed" app:switchPadding="12dp" /> + + Reset importance on moving messages Automatically add star on snoozing messages Automatically remove star on unsnoozing messages + Automatically make unsnoozing messages important Automatically make starred messages important Cancel snooze on moving messages Automatically block the sender when reporting spam