mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-04 16:16:33 +02:00
POP3: block senders
This commit is contained in:
@@ -76,7 +76,8 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
||||
final long folder = args.getLong("folder");
|
||||
final String type = args.getString("type");
|
||||
final Address[] froms = DB.Converters.decodeAddresses(args.getString("from"));
|
||||
final boolean inJunk = args.getBoolean("inJunk");
|
||||
|
||||
boolean imap = (protocol == EntityAccount.TYPE_IMAP);
|
||||
|
||||
final Context context = getContext();
|
||||
final View view = LayoutInflater.from(context).inflate(R.layout.dialog_junk, null);
|
||||
@@ -94,8 +95,9 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
||||
final Button btnClear = view.findViewById(R.id.btnClear);
|
||||
final ImageButton ibRules = view.findViewById(R.id.ibRules);
|
||||
final ImageButton ibManage = view.findViewById(R.id.ibManage);
|
||||
final Group grpInJunk = view.findViewById(R.id.grpInJunk);
|
||||
final Group grpMore = view.findViewById(R.id.grpMore);
|
||||
final Group grpBlockDomain = view.findViewById(R.id.grpBlockDomain);
|
||||
final Group grpFilter = view.findViewById(R.id.grpFilter);
|
||||
final Group grpManage = view.findViewById(R.id.grpManage);
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
boolean block_sender = prefs.getBoolean("block_sender", true);
|
||||
@@ -127,12 +129,14 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
||||
View.OnClickListener onMore = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (grpMore.getVisibility() == View.VISIBLE) {
|
||||
if (grpManage.getVisibility() == View.VISIBLE) {
|
||||
ibMore.setImageLevel(1);
|
||||
grpMore.setVisibility(View.GONE);
|
||||
grpFilter.setVisibility(View.GONE);
|
||||
grpManage.setVisibility(View.GONE);
|
||||
} else {
|
||||
ibMore.setImageLevel(0);
|
||||
grpMore.setVisibility(View.VISIBLE);
|
||||
grpFilter.setVisibility(imap ? View.VISIBLE : View.GONE);
|
||||
grpManage.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -345,21 +349,17 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
||||
}
|
||||
|
||||
// Initialize
|
||||
if (inJunk)
|
||||
tvMessage.setText(R.string.title_folder_junk);
|
||||
else {
|
||||
String who = MessageHelper.formatAddresses(froms);
|
||||
String title = getString(R.string.title_ask_spam_who, who);
|
||||
SpannableStringBuilder ssb = new SpannableStringBuilderEx(title);
|
||||
if (who.length() > 0) {
|
||||
int start = title.indexOf(who);
|
||||
if (start > 0) {
|
||||
int textColorPrimary = Helper.resolveColor(context, android.R.attr.textColorPrimary);
|
||||
ssb.setSpan(new ForegroundColorSpan(textColorPrimary), start, start + who.length(), 0);
|
||||
}
|
||||
String who = MessageHelper.formatAddresses(froms);
|
||||
String title = getString(R.string.title_ask_spam_who, who);
|
||||
SpannableStringBuilder ssb = new SpannableStringBuilderEx(title);
|
||||
if (who.length() > 0) {
|
||||
int start = title.indexOf(who);
|
||||
if (start > 0) {
|
||||
int textColorPrimary = Helper.resolveColor(context, android.R.attr.textColorPrimary);
|
||||
ssb.setSpan(new ForegroundColorSpan(textColorPrimary), start, start + who.length(), 0);
|
||||
}
|
||||
tvMessage.setText(ssb);
|
||||
}
|
||||
tvMessage.setText(ssb);
|
||||
|
||||
cbBlockSender.setEnabled(canBlock);
|
||||
cbBlockDomain.setEnabled(false);
|
||||
@@ -376,12 +376,14 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
||||
cbBlockDomain.setCompoundDrawableTintList(ColorStateList.valueOf(colorWarning));
|
||||
}
|
||||
|
||||
cbBlockDomain.setVisibility(domains.size() > 0 ? View.VISIBLE : View.GONE);
|
||||
ibMore.setImageLevel(1);
|
||||
cbBlocklist.setChecked(check_blocklist && use_blocklist);
|
||||
tvBlocklist.setText(TextUtils.join(", ", DnsBlockList.getNamesEnabled(context)));
|
||||
grpInJunk.setVisibility(inJunk ? View.GONE : View.VISIBLE);
|
||||
grpMore.setVisibility(inJunk ? View.VISIBLE : View.GONE);
|
||||
|
||||
cbBlockSender.setVisibility(imap ? View.VISIBLE : View.GONE);
|
||||
grpBlockDomain.setVisibility(domains.size() > 0 && imap ? View.VISIBLE : View.GONE);
|
||||
grpFilter.setVisibility(View.GONE);
|
||||
grpManage.setVisibility(View.GONE);
|
||||
|
||||
new SimpleTask<Boolean>() {
|
||||
@Override
|
||||
@@ -429,16 +431,15 @@ public class FragmentDialogJunk extends FragmentDialogBase {
|
||||
.setView(view)
|
||||
.setNegativeButton(android.R.string.cancel, null);
|
||||
|
||||
if (!inJunk)
|
||||
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
prefs.edit().putBoolean("block_sender", cbBlockSender.isChecked()).apply();
|
||||
getArguments().putBoolean("block_sender", cbBlockSender.isChecked());
|
||||
getArguments().putBoolean("block_domain", cbBlockDomain.isChecked());
|
||||
sendResult(Activity.RESULT_OK);
|
||||
}
|
||||
});
|
||||
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
prefs.edit().putBoolean("block_sender", cbBlockSender.isChecked()).apply();
|
||||
getArguments().putBoolean("block_sender", cbBlockSender.isChecked() || !imap);
|
||||
getArguments().putBoolean("block_domain", cbBlockDomain.isChecked() && imap);
|
||||
sendResult(Activity.RESULT_OK);
|
||||
}
|
||||
});
|
||||
|
||||
return builder.create();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user