]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/ManagerImpl.java
Add more informative thread names
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / ManagerImpl.java
index 0e100d722b08505cd78ff5105e3ddf335633c04e..fd536d107349ab911ffb7db76496f4019e5f671e 100644 (file)
@@ -81,6 +81,7 @@ import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -571,6 +572,17 @@ public class ManagerImpl implements Manager {
     ) throws IOException, NotAGroupMemberException, GroupNotFoundException, GroupSendingNotAllowedException {
         var delete = new SignalServiceDataMessage.RemoteDelete(targetSentTimestamp);
         final var messageBuilder = SignalServiceDataMessage.newBuilder().withRemoteDelete(delete);
+        for (final var recipient : recipients) {
+            if (recipient instanceof RecipientIdentifier.Single r) {
+                try {
+                    final var recipientId = context.getRecipientHelper().resolveRecipient(r);
+                    account.getMessageSendLogStore().deleteEntryForRecipientNonGroup(targetSentTimestamp, recipientId);
+                } catch (UnregisteredRecipientException ignored) {
+                }
+            } else if (recipient instanceof RecipientIdentifier.Group r) {
+                account.getMessageSendLogStore().deleteEntryForGroup(targetSentTimestamp, r.groupId());
+            }
+        }
         return sendMessage(messageBuilder, recipients);
     }
 
@@ -738,6 +750,8 @@ public class ManagerImpl implements Manager {
         }
     }
 
+    private static final AtomicInteger threadNumber = new AtomicInteger(0);
+
     private void startReceiveThreadIfRequired() {
         if (receiveThread != null) {
             return;
@@ -773,6 +787,7 @@ public class ManagerImpl implements Manager {
                 }
             }
         });
+        receiveThread.setName("receive-" + threadNumber.getAndIncrement());
 
         receiveThread.start();
     }