Added option to disable auto blocking junk senders

This commit is contained in:
M66B 2023-01-14 23:40:22 +01:00
parent b93b192762
commit ffcfb16227
4 changed files with 37 additions and 11 deletions

View File

@ -211,6 +211,7 @@ public class EntityOperation {
boolean autounflag = prefs.getBoolean("autounflag", false);
boolean reset_importance = prefs.getBoolean("reset_importance", false);
boolean reset_snooze = prefs.getBoolean("reset_snooze", true);
boolean auto_block_sender = prefs.getBoolean("auto_block_sender", true);
if (jargs.opt(1) != null) {
// rules, classify
@ -230,16 +231,19 @@ public class EntityOperation {
return;
if (EntityFolder.JUNK.equals(target.type) &&
Objects.equals(source.account, target.account) &&
(jargs.opt(3) == null || !jargs.optBoolean(3))) {
Objects.equals(source.account, target.account)) {
Boolean noblock = (Boolean) jargs.opt(3);
jargs.remove(3);
// Prevent blocking self
List<TupleIdentityEx> identities = db.identity().getComposableIdentities(null);
if (!message.fromSelf(identities)) {
EntityLog.log(context, "Auto block sender=" + MessageHelper.formatAddresses(message.from));
EntityContact.update(context,
message.account, message.identity, message.from,
EntityContact.TYPE_JUNK, message.received);
boolean block = (noblock == null ? auto_block_sender : !noblock);
if (block) {
// Prevent blocking self
List<TupleIdentityEx> identities = db.identity().getComposableIdentities(null);
if (!message.fromSelf(identities)) {
EntityLog.log(context, "Auto block sender=" + MessageHelper.formatAddresses(message.from));
EntityContact.update(context,
message.account, message.identity, message.from,
EntityContact.TYPE_JUNK, message.received);
}
}
}

View File

@ -100,6 +100,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
private SwitchCompat swAutoImportant;
private SwitchCompat swResetImportance;
private SwitchCompat swResetSnooze;
private SwitchCompat swAutoBlockSender;
private SwitchCompat swSwipeReply;
final static int MAX_SWIPE_SENSITIVITY = 10;
@ -113,7 +114,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
"autoexpand", "expand_first", "expand_all", "expand_one", "collapse_multiple",
"autoclose", "onclose", "autoclose_unseen", "collapse_marked",
"undo_timeout",
"autoread", "flag_snoozed", "autounflag", "auto_important", "reset_importance", "reset_snooze",
"autoread", "flag_snoozed", "autounflag", "auto_important", "reset_importance", "reset_snooze", "auto_block_sender",
"swipe_reply"
};
@ -169,6 +170,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
swAutoImportant = view.findViewById(R.id.swAutoImportant);
swResetImportance = view.findViewById(R.id.swResetImportance);
swResetSnooze = view.findViewById(R.id.swResetSnooze);
swAutoBlockSender = view.findViewById(R.id.swAutoBlockSender);
swSwipeReply = view.findViewById(R.id.swSwipeReply);
setOptions();
@ -514,6 +516,12 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
}
});
swAutoBlockSender.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("auto_block_sender", checked).apply();
}
});
swSwipeReply.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
@ -635,6 +643,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
swAutoImportant.setChecked(prefs.getBoolean("auto_important", false));
swResetImportance.setChecked(prefs.getBoolean("reset_importance", false));
swResetSnooze.setChecked(prefs.getBoolean("reset_snooze", true));
swAutoBlockSender.setChecked(prefs.getBoolean("auto_block_sender", true));
swSwipeReply.setChecked(prefs.getBoolean("swipe_reply", false));
}

View File

@ -723,6 +723,18 @@
app:layout_constraintTop_toBottomOf="@id/swResetImportance"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swAutoBlockSender"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:checked="true"
android:text="@string/title_advanced_auto_block_sender"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swResetSnooze"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swSwipeReply"
android:layout_width="0dp"
@ -731,7 +743,7 @@
android:text="@string/title_advanced_swipe_reply"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swResetSnooze"
app:layout_constraintTop_toBottomOf="@id/swAutoBlockSender"
app:switchPadding="12dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>

View File

@ -650,6 +650,7 @@
<string name="title_advanced_auto_important">Automatically make starred messages important</string>
<string name="title_advanced_reset_importance">Reset importance on moving messages</string>
<string name="title_advanced_cancel_snooze">Cancel snooze on moving messages</string>
<string name="title_advanced_auto_block_sender">Automatically block the sender when reporting spam</string>
<string name="title_advanced_swipe_reply">Swipe expanded messages to the right to reply</string>
<string name="title_advanced_default_snooze">Default snooze/delay time</string>