Limit POP3 rules

pull/217/head
M66B 6 months ago
parent 1efad0cb05
commit cca3b9c27b

@ -681,7 +681,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
} }
} }
if (EntityFolder.INBOX.equals(folder.type) && folder.accountProtocol == EntityAccount.TYPE_POP) { if (folder.accountProtocol == EntityAccount.TYPE_POP) {
popupMenu.getMenu().add(Menu.NONE, R.string.title_edit_rules, order++, R.string.title_edit_rules); popupMenu.getMenu().add(Menu.NONE, R.string.title_edit_rules, order++, R.string.title_edit_rules);
popupMenu.getMenu().add(Menu.NONE, R.string.title_execute_rules, order++, R.string.title_execute_rules); popupMenu.getMenu().add(Menu.NONE, R.string.title_execute_rules, order++, R.string.title_execute_rules);
} }

@ -7602,8 +7602,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private void onMenuCreateRule(TupleMessageEx message) { private void onMenuCreateRule(TupleMessageEx message) {
Intent rule = new Intent(ActivityView.ACTION_EDIT_RULE); Intent rule = new Intent(ActivityView.ACTION_EDIT_RULE);
rule.putExtra("account", message.account); rule.putExtra("account", message.account);
rule.putExtra("folder", message.folder);
rule.putExtra("protocol", message.accountProtocol); rule.putExtra("protocol", message.accountProtocol);
rule.putExtra("folder", message.folder);
rule.putExtra("type", message.folderType);
if (message.from != null && message.from.length > 0) if (message.from != null && message.from.length > 0)
rule.putExtra("sender", ((InternetAddress) message.from[0]).getAddress()); rule.putExtra("sender", ((InternetAddress) message.from[0]).getAddress());
if (message.to != null && message.to.length > 0) if (message.to != null && message.to.length > 0)

@ -78,6 +78,7 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
private NumberFormat NF = NumberFormat.getNumberInstance(); private NumberFormat NF = NumberFormat.getNumberInstance();
private int protocol = -1; private int protocol = -1;
private String type = null;
private String sort; private String sort;
private String search = null; private String search = null;
private List<TupleRuleEx> all = new ArrayList<>(); private List<TupleRuleEx> all = new ArrayList<>();
@ -336,8 +337,9 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
new Intent(ActivityView.ACTION_EDIT_RULE) new Intent(ActivityView.ACTION_EDIT_RULE)
.putExtra("id", rule.id) .putExtra("id", rule.id)
.putExtra("account", rule.account) .putExtra("account", rule.account)
.putExtra("protocol", protocol)
.putExtra("folder", rule.folder) .putExtra("folder", rule.folder)
.putExtra("protocol", protocol)); .putExtra("type", type));
} }
@Override @Override
@ -678,8 +680,9 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
}); });
} }
public void set(int protocol, String sort, @NonNull List<TupleRuleEx> rules) { public void set(int protocol, String type, String sort, @NonNull List<TupleRuleEx> rules) {
this.protocol = protocol; this.protocol = protocol;
this.type = type;
this.sort = sort; this.sort = sort;
Log.i("Set protocol=" + protocol + " rules=" + rules.size() + " sort=" + sort + " search=" + search); Log.i("Set protocol=" + protocol + " rules=" + rules.size() + " sort=" + sort + " search=" + search);
@ -763,14 +766,14 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
public void setSort(String sort) { public void setSort(String sort) {
this.sort = sort; this.sort = sort;
set(protocol, sort, all); set(protocol, type, sort, all);
notifyDataSetChanged(); notifyDataSetChanged();
} }
public void search(String query) { public void search(String query) {
Log.i("Rules query=" + query); Log.i("Rules query=" + query);
search = query; search = query;
set(protocol, sort, all); set(protocol, type, sort, all);
} }
private static class DiffCallback extends DiffUtil.Callback { private static class DiffCallback extends DiffUtil.Callback {

@ -221,6 +221,7 @@ public class FragmentRule extends FragmentBase {
private long account = -1; private long account = -1;
private int protocol = -1; private int protocol = -1;
private long folder = -1; private long folder = -1;
private String type = null;
private Uri sound = null; private Uri sound = null;
private DateFormat DF; private DateFormat DF;
@ -277,6 +278,7 @@ public class FragmentRule extends FragmentBase {
account = args.getLong("account", -1); account = args.getLong("account", -1);
protocol = args.getInt("protocol", EntityAccount.TYPE_IMAP); protocol = args.getInt("protocol", EntityAccount.TYPE_IMAP);
folder = args.getLong("folder", -1); folder = args.getLong("folder", -1);
type = args.getString("type");
if (savedInstanceState != null) if (savedInstanceState != null)
sound = savedInstanceState.getParcelable("fair:sound"); sound = savedInstanceState.getParcelable("fair:sound");
@ -710,7 +712,8 @@ public class FragmentRule extends FragmentBase {
actions.add(new Action(EntityRule.TYPE_IMPORTANCE, getString(R.string.title_rule_importance), R.drawable.twotone_north_24)); actions.add(new Action(EntityRule.TYPE_IMPORTANCE, getString(R.string.title_rule_importance), R.drawable.twotone_north_24));
actions.add(new Action(EntityRule.TYPE_KEYWORD, getString(R.string.title_rule_keyword), R.drawable.twotone_label_important_24)); actions.add(new Action(EntityRule.TYPE_KEYWORD, getString(R.string.title_rule_keyword), R.drawable.twotone_label_important_24));
actions.add(new Action(EntityRule.TYPE_NOTES, getString(R.string.title_rule_notes), R.drawable.twotone_sticky_note_2_24)); actions.add(new Action(EntityRule.TYPE_NOTES, getString(R.string.title_rule_notes), R.drawable.twotone_sticky_note_2_24));
actions.add(new Action(EntityRule.TYPE_MOVE, getString(R.string.title_rule_move), R.drawable.twotone_drive_file_move_24)); if (protocol == EntityAccount.TYPE_IMAP || EntityFolder.INBOX.equals(type))
actions.add(new Action(EntityRule.TYPE_MOVE, getString(R.string.title_rule_move), R.drawable.twotone_drive_file_move_24));
if (protocol == EntityAccount.TYPE_IMAP) if (protocol == EntityAccount.TYPE_IMAP)
actions.add(new Action(EntityRule.TYPE_COPY, getString(R.string.title_rule_copy), R.drawable.twotone_file_copy_24)); actions.add(new Action(EntityRule.TYPE_COPY, getString(R.string.title_rule_copy), R.drawable.twotone_file_copy_24));
actions.add(new Action(EntityRule.TYPE_DELETE, getString(R.string.title_rule_delete), R.drawable.twotone_delete_forever_24)); actions.add(new Action(EntityRule.TYPE_DELETE, getString(R.string.title_rule_delete), R.drawable.twotone_delete_forever_24));

@ -222,6 +222,7 @@ public class FragmentRules extends FragmentBase {
args.putLong("account", account); args.putLong("account", account);
args.putInt("protocol", protocol); args.putInt("protocol", protocol);
args.putLong("folder", folder); args.putLong("folder", folder);
args.putString("type", type);
FragmentRule fragment = new FragmentRule(); FragmentRule fragment = new FragmentRule();
fragment.setArguments(args); fragment.setArguments(args);
@ -264,7 +265,7 @@ public class FragmentRules extends FragmentBase {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String sort = prefs.getString("rule_sort", "order"); String sort = prefs.getString("rule_sort", "order");
adapter.set(protocol, sort, rules); adapter.set(protocol, type, sort, rules);
rvRule.invalidateItemDecorations(); rvRule.invalidateItemDecorations();
pbWait.setVisibility(View.GONE); pbWait.setVisibility(View.GONE);
@ -733,8 +734,9 @@ public class FragmentRules extends FragmentBase {
new Intent(ActivityView.ACTION_EDIT_RULE) new Intent(ActivityView.ACTION_EDIT_RULE)
.putExtra("id", args.getLong("rule")) .putExtra("id", args.getLong("rule"))
.putExtra("account", args.getLong("account")) .putExtra("account", args.getLong("account"))
.putExtra("folder", args.getLong("folder"))
.putExtra("protocol", args.getInt("protocol")) .putExtra("protocol", args.getInt("protocol"))
.putExtra("folder", args.getLong("folder"))
.putExtra("type", args.getString("type"))
.putExtra("copy", true)); .putExtra("copy", true));
} }

Loading…
Cancel
Save