diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index b259616af8..587e3bdc90 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -735,14 +735,14 @@ public class FragmentMessages extends FragmentEx { fabMore.setOnClickListener(new View.OnClickListener() { private final int action_seen = 1; private final int action_unseen = 2; - private final int action_flag = 3; - private final int action_unflag = 4; - private final int action_archive = 5; - private final int action_trash = 6; - private final int action_delete = 7; - private final int action_junk = 8; - private final int action_move = 9; - private final int action_snooze = 10; + private final int action_snooze = 3; + private final int action_flag = 4; + private final int action_unflag = 5; + private final int action_archive = 6; + private final int action_trash = 7; + private final int action_delete = 8; + private final int action_junk = 9; + private final int action_move = 10; @Override public void onClick(View v) { @@ -798,26 +798,26 @@ public class FragmentMessages extends FragmentEx { if (result[1] && !result[9]) popupMenu.getMenu().add(Menu.NONE, action_unseen, 2, R.string.title_unseen); + popupMenu.getMenu().add(Menu.NONE, action_snooze, 3, R.string.title_snooze); + if (result[2]) - popupMenu.getMenu().add(Menu.NONE, action_flag, 3, R.string.title_flag); + popupMenu.getMenu().add(Menu.NONE, action_flag, 4, R.string.title_flag); if (result[3]) - popupMenu.getMenu().add(Menu.NONE, action_unflag, 4, R.string.title_unflag); + popupMenu.getMenu().add(Menu.NONE, action_unflag, 5, R.string.title_unflag); if (result[4] && !result[6] && !result[9]) // has archive and not is archive - popupMenu.getMenu().add(Menu.NONE, action_archive, 5, R.string.title_archive); + popupMenu.getMenu().add(Menu.NONE, action_archive, 6, R.string.title_archive); if (result[7]) // is trash - popupMenu.getMenu().add(Menu.NONE, action_delete, 6, R.string.title_delete); + popupMenu.getMenu().add(Menu.NONE, action_delete, 7, R.string.title_delete); else if (result[5]) // has trash - popupMenu.getMenu().add(Menu.NONE, action_trash, 6, R.string.title_trash); + popupMenu.getMenu().add(Menu.NONE, action_trash, 8, R.string.title_trash); if (!result[8] && !result[9]) - popupMenu.getMenu().add(Menu.NONE, action_junk, 7, R.string.title_spam); + popupMenu.getMenu().add(Menu.NONE, action_junk, 9, R.string.title_spam); if (!result[9]) - popupMenu.getMenu().add(Menu.NONE, action_move, 8, R.string.title_move); - - popupMenu.getMenu().add(Menu.NONE, action_snooze, 9, R.string.title_snooze); + popupMenu.getMenu().add(Menu.NONE, action_move, 10, R.string.title_move); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override @@ -829,6 +829,9 @@ public class FragmentMessages extends FragmentEx { case action_unseen: onActionSeen(false); return true; + case action_snooze: + onActionSnooze(); + return true; case action_flag: onActionFlag(true); return true; @@ -850,9 +853,6 @@ public class FragmentMessages extends FragmentEx { case action_move: onActionMove(); return true; - case action_snooze: - onActionSnooze(); - return true; default: return false; } @@ -922,6 +922,59 @@ public class FragmentMessages extends FragmentEx { }.execute(FragmentMessages.this, args, "messages:seen"); } + private void onActionSnooze() { + DialogDuration.show(getContext(), getViewLifecycleOwner(), R.string.title_snooze, + new DialogDuration.IDialogDuration() { + @Override + public void onDurationSelected(long duration, long time) { + if (Helper.isPro(getContext())) { + Bundle args = new Bundle(); + args.putLongArray("ids", getSelection()); + args.putLong("wakeup", duration == 0 ? -1 : time); + + new SimpleTask() { + @Override + protected Void onExecute(Context context, Bundle args) { + long[] ids = args.getLongArray("ids"); + Long wakeup = args.getLong("wakeup"); + if (wakeup < 0) + wakeup = null; + + DB db = DB.getInstance(context); + for (long id : ids) { + EntityMessage message = db.message().getMessage(id); + if (message != null) { + List messages = db.message().getMessageByThread( + message.account, message.thread, threading ? null : id, message.folder); + for (EntityMessage threaded : messages) { + db.message().setMessageSnoozed(threaded.id, wakeup); + EntityMessage.snooze(context, threaded.id, wakeup); + } + } + } + + return null; + } + + @Override + protected void onException(Bundle args, Throwable ex) { + Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); + } + }.execute(FragmentMessages.this, args, "messages:snooze"); + } else { + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro"); + fragmentTransaction.commit(); + } + } + + @Override + public void onDismiss() { + selectionTracker.clearSelection(); + } + }); + } + private void onActionFlag(boolean flagged) { Bundle args = new Bundle(); args.putLongArray("ids", getSelection()); @@ -1192,59 +1245,6 @@ public class FragmentMessages extends FragmentEx { } }.execute(FragmentMessages.this, args, "messages:move"); } - - private void onActionSnooze() { - DialogDuration.show(getContext(), getViewLifecycleOwner(), R.string.title_snooze, - new DialogDuration.IDialogDuration() { - @Override - public void onDurationSelected(long duration, long time) { - if (Helper.isPro(getContext())) { - Bundle args = new Bundle(); - args.putLongArray("ids", getSelection()); - args.putLong("wakeup", duration == 0 ? -1 : time); - - new SimpleTask() { - @Override - protected Void onExecute(Context context, Bundle args) { - long[] ids = args.getLongArray("ids"); - Long wakeup = args.getLong("wakeup"); - if (wakeup < 0) - wakeup = null; - - DB db = DB.getInstance(context); - for (long id : ids) { - EntityMessage message = db.message().getMessage(id); - if (message != null) { - List messages = db.message().getMessageByThread( - message.account, message.thread, threading ? null : id, message.folder); - for (EntityMessage threaded : messages) { - db.message().setMessageSnoozed(threaded.id, wakeup); - EntityMessage.snooze(context, threaded.id, wakeup); - } - } - } - - return null; - } - - @Override - protected void onException(Bundle args, Throwable ex) { - Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex); - } - }.execute(FragmentMessages.this, args, "messages:snooze"); - } else { - FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); - fragmentTransaction.replace(R.id.content_frame, new FragmentPro()).addToBackStack("pro"); - fragmentTransaction.commit(); - } - } - - @Override - public void onDismiss() { - selectionTracker.clearSelection(); - } - }); - } }); ((ActivityBase) getActivity()).addBackPressedListener(onBackPressedListener);