mirror of https://github.com/M66B/FairEmail.git
Fixed reply all
This commit is contained in:
parent
74e99f6a3f
commit
5f83e3351a
|
@ -3231,19 +3231,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onActionReplyMenu(final ActionData data) {
|
private void onActionReplyMenu(final ActionData data) {
|
||||||
List<String> recipients = new ArrayList<>();
|
int cc = (data.message.cc == null ? 0 : data.message.cc.length);
|
||||||
if (data.message.reply != null)
|
|
||||||
for (Address reply : data.message.reply)
|
|
||||||
recipients.add(((InternetAddress) reply).getAddress());
|
|
||||||
if (data.message.from != null &&
|
|
||||||
(data.message.reply == null || data.message.reply.length == 0))
|
|
||||||
for (Address from : data.message.from)
|
|
||||||
recipients.add(((InternetAddress) from).getAddress());
|
|
||||||
if (data.message.cc != null)
|
|
||||||
for (Address cc : data.message.cc)
|
|
||||||
recipients.add(((InternetAddress) cc).getAddress());
|
|
||||||
|
|
||||||
if (recipients.size() == 1 &&
|
if (cc == 0 &&
|
||||||
data.message.list_post == null &&
|
data.message.list_post == null &&
|
||||||
data.message.receipt_to == null &&
|
data.message.receipt_to == null &&
|
||||||
(answers == 0 && Helper.isPro(context))) {
|
(answers == 0 && Helper.isPro(context))) {
|
||||||
|
@ -3254,7 +3244,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||||
View anchor = bnvActions.findViewById(R.id.action_reply);
|
View anchor = bnvActions.findViewById(R.id.action_reply);
|
||||||
PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(context, powner, anchor);
|
PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(context, powner, anchor);
|
||||||
popupMenu.inflate(R.menu.menu_reply);
|
popupMenu.inflate(R.menu.menu_reply);
|
||||||
popupMenu.getMenu().findItem(R.id.menu_reply_to_all).setVisible(recipients.size() > 1);
|
popupMenu.getMenu().findItem(R.id.menu_reply_to_all).setVisible(cc > 1);
|
||||||
popupMenu.getMenu().findItem(R.id.menu_reply_list).setVisible(data.message.list_post != null);
|
popupMenu.getMenu().findItem(R.id.menu_reply_list).setVisible(data.message.list_post != null);
|
||||||
popupMenu.getMenu().findItem(R.id.menu_reply_receipt).setVisible(data.message.receipt_to != null);
|
popupMenu.getMenu().findItem(R.id.menu_reply_receipt).setVisible(data.message.receipt_to != null);
|
||||||
popupMenu.getMenu().findItem(R.id.menu_reply_answer).setVisible(answers != 0 || !Helper.isPro(context));
|
popupMenu.getMenu().findItem(R.id.menu_reply_answer).setVisible(answers != 0 || !Helper.isPro(context));
|
||||||
|
|
|
@ -2066,21 +2066,20 @@ public class FragmentCompose extends FragmentBase {
|
||||||
|
|
||||||
if ("reply_all".equals(action)) {
|
if ("reply_all".equals(action)) {
|
||||||
// Remove self from cc
|
// Remove self from cc
|
||||||
List<Address> addresses = new ArrayList<>();
|
List<Address> ccs = new ArrayList<>();
|
||||||
if (ref.to != null)
|
|
||||||
addresses.addAll(Arrays.asList(ref.to));
|
|
||||||
if (ref.cc != null)
|
if (ref.cc != null)
|
||||||
addresses.addAll(Arrays.asList(ref.cc));
|
ccs.addAll(Arrays.asList(ref.cc));
|
||||||
for (Address address : new ArrayList<>(addresses)) {
|
|
||||||
String cc = MessageHelper.canonicalAddress(((InternetAddress) address).getAddress());
|
for (Address cc : new ArrayList<>(ccs)) {
|
||||||
|
String email = MessageHelper.canonicalAddress(((InternetAddress) cc).getAddress());
|
||||||
List<TupleIdentityEx> identities = db.identity().getComposableIdentities(ref.account);
|
List<TupleIdentityEx> identities = db.identity().getComposableIdentities(ref.account);
|
||||||
for (EntityIdentity identity : identities) {
|
for (EntityIdentity identity : identities) {
|
||||||
String email = MessageHelper.canonicalAddress(identity.email);
|
String iemail = MessageHelper.canonicalAddress(identity.email);
|
||||||
if (cc.equals(email))
|
if (email.equals(iemail))
|
||||||
addresses.remove(address);
|
ccs.remove(cc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
draft.cc = addresses.toArray(new Address[0]);
|
draft.cc = ccs.toArray(new Address[0]);
|
||||||
} else if ("receipt".equals(action)) {
|
} else if ("receipt".equals(action)) {
|
||||||
draft.receipt_request = true;
|
draft.receipt_request = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue