Fix group send error handling for single targets.

This commit is contained in:
Cody Henthorne
2024-07-31 14:21:45 -04:00
committed by mtang-signal
parent ea215ef488
commit 2677665069
2 changed files with 47 additions and 32 deletions

View File

@@ -638,13 +638,17 @@ public final class GroupSendUtil {
SealedSenderAccess sealedSenderAccess = sealedSenderAccesses.get(0);
SendMessageResult result;
if (editMessage != null) {
result = messageSender.sendEditMessage(targets.get(0), sealedSenderAccess, contentHint, message, SignalServiceMessageSender.IndividualSendEvents.EMPTY, urgent, editMessage.getTargetSentTimestamp());
} else {
result = messageSender.sendDataMessage(targets.get(0), sealedSenderAccess, contentHint, message, SignalServiceMessageSender.IndividualSendEvents.EMPTY, urgent, targetRecipient.getNeedsPniSignature());
try {
if (editMessage != null) {
result = messageSender.sendEditMessage(targets.get(0), sealedSenderAccess, contentHint, message, SignalServiceMessageSender.IndividualSendEvents.EMPTY, urgent, editMessage.getTargetSentTimestamp());
} else {
result = messageSender.sendDataMessage(targets.get(0), sealedSenderAccess, contentHint, message, SignalServiceMessageSender.IndividualSendEvents.EMPTY, urgent, targetRecipient.getNeedsPniSignature());
}
} catch (IOException e) {
result = SignalServiceMessageSender.mapSendErrorToSendResult(e, message.getTimestamp(), targets.get(0));
}
if (targetRecipient.getNeedsPniSignature()) {
if (result.isSuccess() && targetRecipient.getNeedsPniSignature()) {
SignalDatabase.pendingPniSignatureMessages().insertIfNecessary(targetRecipients.get(0).getId(), getSentTimestamp(), result);
}