pull/147/head
M66B 6 years ago
parent 9a1a043bd9
commit 52caf9978d

@ -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<Void>() {
@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<EntityMessage> 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<Void>() {
@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<EntityMessage> 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);

Loading…
Cancel
Save