From 8806a32abc97f1fb9bce21be7973c478e3182de3 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 17 Mar 2020 08:40:51 +0100 Subject: [PATCH] Added swipe to junk --- .../eu/faircode/email/FragmentAccount.java | 6 ++++ .../eu/faircode/email/FragmentMessages.java | 28 ++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index be3b4b6bb2..933fea9f01 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -173,6 +173,7 @@ public class FragmentAccount extends FragmentBase { static final Long SWIPE_ACTION_MOVE = -5L; static final Long SWIPE_ACTION_FLAG = -6L; static final Long SWIPE_ACTION_DELETE = -7L; + static final Long SWIPE_ACTION_JUNK = -8L; @Override public void onCreate(Bundle savedInstanceState) { @@ -1729,6 +1730,11 @@ public class FragmentAccount extends FragmentBase { move.name = getString(R.string.title_move); folders.add(move); + EntityFolder junk = new EntityFolder(); + junk.id = SWIPE_ACTION_JUNK; + junk.name = getString(R.string.title_spam); + folders.add(junk); + EntityFolder delete = new EntityFolder(); delete.id = SWIPE_ACTION_DELETE; delete.name = getString(R.string.title_delete); diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index ce5bea7b84..7294505f2d 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1688,6 +1688,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. ? R.drawable.baseline_visibility_24 : R.drawable.baseline_timer_off_24)); else if (FragmentAccount.SWIPE_ACTION_MOVE.equals(action)) icon = R.drawable.baseline_folder_24; + else if (FragmentAccount.SWIPE_ACTION_JUNK.equals(action)) + icon = R.drawable.baseline_flag_24; else if (FragmentAccount.SWIPE_ACTION_DELETE.equals(action) || (action.equals(message.folder) && EntityFolder.TRASH.equals(message.folderType))) icon = R.drawable.baseline_delete_forever_24; @@ -1774,6 +1776,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. else if (FragmentAccount.SWIPE_ACTION_MOVE.equals(action)) { adapter.notifyItemChanged(pos); onSwipeMove(message); + } else if (FragmentAccount.SWIPE_ACTION_JUNK.equals(action)) { + adapter.notifyItemChanged(pos); + onSwipeJunk(message); } else if (FragmentAccount.SWIPE_ACTION_DELETE.equals(action) || (action.equals(message.folder) && EntityFolder.TRASH.equals(message.folderType))) { adapter.notifyItemChanged(pos); @@ -1831,7 +1836,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. popupMenu.getMenu().add(Menu.NONE, R.string.title_flag_color, 5, R.string.title_flag_color); popupMenu.getMenu().add(Menu.NONE, R.string.title_move, 6, R.string.title_move); - popupMenu.getMenu().add(Menu.NONE, R.string.title_delete, 7, R.string.title_delete); + popupMenu.getMenu().add(Menu.NONE, R.string.title_spam, 7, R.string.title_spam); + popupMenu.getMenu().add(Menu.NONE, R.string.title_delete, 8, R.string.title_delete); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override @@ -1862,6 +1868,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. case R.string.title_move: onSwipeMove(message); return true; + case R.string.title_spam: + onSwipeJunk(message); + return true; case R.string.title_delete: onSwipeDelete(message); return true; @@ -1912,7 +1921,18 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. FragmentDialogFolder fragment = new FragmentDialogFolder(); fragment.setArguments(args); fragment.setTargetFragment(FragmentMessages.this, REQUEST_MESSAGE_MOVE); - fragment.show(getParentFragmentManager(), "message:move"); + fragment.show(getParentFragmentManager(), "swipe:move"); + } + + private void onSwipeJunk(final @NonNull TupleMessageEx message) { + Bundle aargs = new Bundle(); + aargs.putLong("id", message.id); + aargs.putString("from", MessageHelper.formatAddresses(message.from)); + + AdapterMessage.FragmentDialogJunk ask = new AdapterMessage.FragmentDialogJunk(); + ask.setArguments(aargs); + ask.setTargetFragment(FragmentMessages.this, REQUEST_MESSAGE_JUNK); + ask.show(getParentFragmentManager(), "swipe:junk"); } private void onSwipeDelete(@NonNull TupleMessageEx message) { @@ -1923,7 +1943,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. FragmentDialogAsk ask = new FragmentDialogAsk(); ask.setArguments(args); ask.setTargetFragment(FragmentMessages.this, FragmentMessages.REQUEST_MESSAGE_DELETE); - ask.show(getParentFragmentManager(), "message:delete"); + ask.show(getParentFragmentManager(), "swipe:delete"); } private void swipeFolder(@NonNull TupleMessageEx message, @NonNull Long target) { @@ -1980,7 +2000,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. else Log.unexpectedError(getParentFragmentManager(), ex); } - }.execute(FragmentMessages.this, args, "messages:swipe"); + }.execute(FragmentMessages.this, args, "swipe:folder"); } };