]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/helper/SendHelper.java
Update libsignal-service-java
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / helper / SendHelper.java
index 0f4d035ddfa4f5491a34418c15f5a403544c5f2f..886c84f996fdf8953298068cfed032d732b7f62d 100644 (file)
@@ -345,29 +345,41 @@ public class SendHelper {
                 },
                 () -> false,
                 urgent);
-        final SenderKeySenderHandler senderKeySender = (distId, recipients, unidentifiedAccess, isRecipientUpdate) -> {
-            final var res = messageSender.sendGroupDataMessage(distId,
-                    recipients,
-                    unidentifiedAccess,
-                    isRecipientUpdate,
-                    contentHint,
-                    message,
-                    SignalServiceMessageSender.SenderKeyGroupEvents.EMPTY,
-                    urgent,
-                    false);
-            synchronized (entryId) {
-                if (entryId.get() == -1) {
-                    final var newId = messageSendLogStore.insertIfPossible(message.getTimestamp(),
-                            res,
-                            contentHint,
-                            urgent);
-                    entryId.set(newId);
-                } else {
-                    messageSendLogStore.addRecipientToExistingEntryIfPossible(entryId.get(), res);
-                }
-            }
-            return res;
-        };
+        final SenderKeySenderHandler senderKeySender = (distId, recipients, unidentifiedAccess, isRecipientUpdate) -> messageSender.sendGroupDataMessage(
+                distId,
+                recipients,
+                unidentifiedAccess,
+                isRecipientUpdate,
+                contentHint,
+                message,
+                SignalServiceMessageSender.SenderKeyGroupEvents.EMPTY,
+                urgent,
+                false,
+                sendResult -> {
+                    logger.trace("Partial message send results: {}", sendResult.size());
+                    synchronized (entryId) {
+                        if (entryId.get() == -1) {
+                            final var newId = messageSendLogStore.insertIfPossible(message.getTimestamp(),
+                                    sendResult,
+                                    contentHint,
+                                    urgent);
+                            entryId.set(newId);
+                        } else {
+                            messageSendLogStore.addRecipientToExistingEntryIfPossible(entryId.get(), sendResult);
+                        }
+                    }
+                    synchronized (entryId) {
+                        if (entryId.get() == -1) {
+                            final var newId = messageSendLogStore.insertIfPossible(message.getTimestamp(),
+                                    sendResult,
+                                    contentHint,
+                                    urgent);
+                            entryId.set(newId);
+                        } else {
+                            messageSendLogStore.addRecipientToExistingEntryIfPossible(entryId.get(), sendResult);
+                        }
+                    }
+                });
         final var results = sendGroupMessageInternal(legacySender, senderKeySender, recipientIds, distributionId);
 
         for (var r : results) {