From a452457e0a6de87220e57f8116f02a591849928f Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 8 Jan 2025 07:45:17 +0100 Subject: [PATCH] Allow edit of send at time --- .../eu/faircode/email/FragmentDialogSend.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogSend.java b/app/src/main/java/eu/faircode/email/FragmentDialogSend.java index 45210fecb1..e3f02d82b5 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogSend.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogSend.java @@ -534,10 +534,15 @@ public class FragmentDialogSend extends FragmentDialogBase { args.putString("title", getString(R.string.title_send_at)); args.putLong("id", id); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(new Date().getTime()); - cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE) + 30); - args.putLong("time", cal.getTimeInMillis()); + Bundle a = getArguments(); + if (a != null && a.containsKey("sendAt")) + args.putLong("time", a.getLong("sendAt")); + else { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(new Date().getTime()); + cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE) + 30); + args.putLong("time", cal.getTimeInMillis()); + } FragmentDialogDuration fragment = new FragmentDialogDuration(); fragment.setArguments(args); @@ -657,6 +662,9 @@ public class FragmentDialogSend extends FragmentDialogBase { return false; } + if (draft.ui_snoozed != null) + args.putLong("sendAt", draft.ui_snoozed); + if (TextUtils.isEmpty(draft.inreplyto)) { args.putString("reason", "No in-reply-to"); return false; @@ -688,6 +696,9 @@ public class FragmentDialogSend extends FragmentDialogBase { @Override protected void onExecuted(Bundle args, Boolean data) { + if (args.containsKey("sendAt")) + getArguments().putLong("sendAt", args.getLong("sendAt")); + if (!data) { String reason = args.getString("reason"); if (BuildConfig.DEBUG) @@ -740,6 +751,8 @@ public class FragmentDialogSend extends FragmentDialogBase { long id = data.getLong("id"); long time = data.getLong("time"); + getArguments().putLong("sendAt", time); + Bundle args = new Bundle(); args.putLong("id", id); args.putLong("time", time);