diff --git a/app/src/main/java/eu/faircode/email/AdapterFolder.java b/app/src/main/java/eu/faircode/email/AdapterFolder.java index 31016b0f26..d31d6f109b 100644 --- a/app/src/main/java/eu/faircode/email/AdapterFolder.java +++ b/app/src/main/java/eu/faircode/email/AdapterFolder.java @@ -681,7 +681,7 @@ public class AdapterFolder extends RecyclerView.Adapter 0) rule.putExtra("sender", ((InternetAddress) message.from[0]).getAddress()); if (message.to != null && message.to.length > 0) diff --git a/app/src/main/java/eu/faircode/email/AdapterRule.java b/app/src/main/java/eu/faircode/email/AdapterRule.java index e41bf12f0c..d3e711020d 100644 --- a/app/src/main/java/eu/faircode/email/AdapterRule.java +++ b/app/src/main/java/eu/faircode/email/AdapterRule.java @@ -78,6 +78,7 @@ public class AdapterRule extends RecyclerView.Adapter { private NumberFormat NF = NumberFormat.getNumberInstance(); private int protocol = -1; + private String type = null; private String sort; private String search = null; private List all = new ArrayList<>(); @@ -336,8 +337,9 @@ public class AdapterRule extends RecyclerView.Adapter { new Intent(ActivityView.ACTION_EDIT_RULE) .putExtra("id", rule.id) .putExtra("account", rule.account) + .putExtra("protocol", protocol) .putExtra("folder", rule.folder) - .putExtra("protocol", protocol)); + .putExtra("type", type)); } @Override @@ -678,8 +680,9 @@ public class AdapterRule extends RecyclerView.Adapter { }); } - public void set(int protocol, String sort, @NonNull List rules) { + public void set(int protocol, String type, String sort, @NonNull List rules) { this.protocol = protocol; + this.type = type; this.sort = sort; Log.i("Set protocol=" + protocol + " rules=" + rules.size() + " sort=" + sort + " search=" + search); @@ -763,14 +766,14 @@ public class AdapterRule extends RecyclerView.Adapter { public void setSort(String sort) { this.sort = sort; - set(protocol, sort, all); + set(protocol, type, sort, all); notifyDataSetChanged(); } public void search(String query) { Log.i("Rules query=" + query); search = query; - set(protocol, sort, all); + set(protocol, type, sort, all); } private static class DiffCallback extends DiffUtil.Callback { diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java index 92d6686a38..6671960be3 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRule.java +++ b/app/src/main/java/eu/faircode/email/FragmentRule.java @@ -221,6 +221,7 @@ public class FragmentRule extends FragmentBase { private long account = -1; private int protocol = -1; private long folder = -1; + private String type = null; private Uri sound = null; private DateFormat DF; @@ -277,6 +278,7 @@ public class FragmentRule extends FragmentBase { account = args.getLong("account", -1); protocol = args.getInt("protocol", EntityAccount.TYPE_IMAP); folder = args.getLong("folder", -1); + type = args.getString("type"); if (savedInstanceState != null) 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_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_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) 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)); diff --git a/app/src/main/java/eu/faircode/email/FragmentRules.java b/app/src/main/java/eu/faircode/email/FragmentRules.java index 04f10d7c41..1d819f0395 100644 --- a/app/src/main/java/eu/faircode/email/FragmentRules.java +++ b/app/src/main/java/eu/faircode/email/FragmentRules.java @@ -222,6 +222,7 @@ public class FragmentRules extends FragmentBase { args.putLong("account", account); args.putInt("protocol", protocol); args.putLong("folder", folder); + args.putString("type", type); FragmentRule fragment = new FragmentRule(); fragment.setArguments(args); @@ -264,7 +265,7 @@ public class FragmentRules extends FragmentBase { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); String sort = prefs.getString("rule_sort", "order"); - adapter.set(protocol, sort, rules); + adapter.set(protocol, type, sort, rules); rvRule.invalidateItemDecorations(); pbWait.setVisibility(View.GONE); @@ -733,8 +734,9 @@ public class FragmentRules extends FragmentBase { new Intent(ActivityView.ACTION_EDIT_RULE) .putExtra("id", args.getLong("rule")) .putExtra("account", args.getLong("account")) - .putExtra("folder", args.getLong("folder")) .putExtra("protocol", args.getInt("protocol")) + .putExtra("folder", args.getLong("folder")) + .putExtra("type", args.getString("type")) .putExtra("copy", true)); }