diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 5b1ea07229..ff078032d9 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1243,17 +1243,25 @@ public class FragmentCompose extends FragmentBase { onAction(R.id.action_check, extras); } - private void onEncrypt() { + private void onEncrypt(EntityMessage draft) { if (pgpService.isBound()) try { - String to = etTo.getText().toString(); - InternetAddress ato[] = (TextUtils.isEmpty(to) ? new InternetAddress[0] : InternetAddress.parse(to)); - if (ato.length == 0) + List
recipients = new ArrayList<>(); + if (draft.to != null) + recipients.addAll(Arrays.asList(draft.to)); + if (draft.cc != null) + recipients.addAll(Arrays.asList(draft.cc)); + if (draft.bcc != null) + recipients.addAll(Arrays.asList(draft.bcc)); + + if (recipients.size() == 0) throw new IllegalArgumentException(getString(R.string.title_to_missing)); - pgpUserIds = new String[ato.length]; - for (int i = 0; i < ato.length; i++) - pgpUserIds[i] = ato[i].getAddress().toLowerCase(Locale.ROOT); + pgpUserIds = new String[recipients.size()]; + for (int i = 0; i < recipients.size(); i++) { + InternetAddress recipient = (InternetAddress) recipients.get(i); + pgpUserIds[i] = recipient.getAddress().toLowerCase(Locale.ROOT); + } Intent intent = new Intent(OpenPgpApi.ACTION_GET_KEY_IDS); intent.putExtra(OpenPgpApi.EXTRA_USER_IDS, pgpUserIds); @@ -1336,8 +1344,8 @@ public class FragmentCompose extends FragmentBase { onActionDiscardConfirmed(); break; case REQUEST_SEND: - if (resultCode == RESULT_OK && data != null) - onActionSend(data.getBundleExtra("args")); + if (resultCode == RESULT_OK) + onActionSend(); break; } } catch (Throwable ex) { @@ -1863,9 +1871,36 @@ public class FragmentCompose extends FragmentBase { onAction(R.id.action_delete); } - private void onActionSend(Bundle data) { - if (data.getBoolean("encrypt")) - onEncrypt(); + private void onActionSend() { + Bundle args = new Bundle(); + args.putLong("id", working); + + new SimpleTask