From c60ce9e002f1acad99462ba092b32290f8d3360f Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 4 Jan 2019 10:11:10 +0100 Subject: [PATCH] Confirm sending messages --- .../eu/faircode/email/FragmentCompose.java | 32 ++++++++++++++++--- app/src/main/res/values/strings.xml | 1 + 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 942434ad31..dc175eb971 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -275,15 +275,39 @@ public class FragmentCompose extends FragmentEx { bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { - int action = item.getItemId(); + final int action = item.getItemId(); + switch (action) { case R.id.action_delete: onDelete(); break; + case R.id.action_send: + try { + String to = etTo.getText().toString(); + InternetAddress ato[] = (TextUtils.isEmpty(to) ? new InternetAddress[0] : InternetAddress.parse(to)); + if (ato.length == 0) + throw new IllegalArgumentException(getString(R.string.title_to_missing)); + + new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner()) + .setMessage(getString(R.string.title_ask_send, + MessageHelper.getFormattedAddresses(ato, false))) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + onAction(action); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + } catch (Throwable ex) { + onAction(action); + } + break; default: onAction(action); } - return false; + + return true; } }); @@ -1584,9 +1608,9 @@ public class FragmentCompose extends FragmentEx { new Handler().post(new Runnable() { @Override public void run() { - if (TextUtils.isEmpty(etTo.getText())) + if (TextUtils.isEmpty(etTo.getText().toString().trim())) etTo.requestFocus(); - else if (TextUtils.isEmpty(etSubject.getText())) + else if (TextUtils.isEmpty(etSubject.getText().toString())) etSubject.requestFocus(); else etBody.requestFocus(); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4d532a8c8e..aed5dfd391 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -324,6 +324,7 @@ Attachments still loading Draft discarded Draft saved + Send message to %1$s? Sending message Encrypt