]> nmode's Git Repositories - signal-cli/commitdiff
Return message timestamp after sucessfully sending a message
authorAsamK <asamk@gmx.de>
Fri, 3 Apr 2020 12:02:18 +0000 (14:02 +0200)
committerAsamK <asamk@gmx.de>
Fri, 3 Apr 2020 12:02:18 +0000 (14:02 +0200)
Fixes #104

src/main/java/org/asamk/Signal.java
src/main/java/org/asamk/signal/commands/SendCommand.java
src/main/java/org/asamk/signal/manager/Manager.java

index f8b353c7bcac24d4f774c2a769e19d260909132b..f0e01dd8b7ed873ce1a94605c5aaa9a7806f4af3 100644 (file)
@@ -13,13 +13,13 @@ import java.util.List;
 
 public interface Signal extends DBusInterface {
 
 
 public interface Signal extends DBusInterface {
 
-    void sendMessage(String message, List<String> attachments, String recipient) throws EncapsulatedExceptions, AttachmentInvalidException, IOException, InvalidNumberException;
+    long sendMessage(String message, List<String> attachments, String recipient) throws EncapsulatedExceptions, AttachmentInvalidException, IOException, InvalidNumberException;
 
 
-    void sendMessage(String message, List<String> attachments, List<String> recipients) throws EncapsulatedExceptions, AttachmentInvalidException, IOException, InvalidNumberException;
+    long sendMessage(String message, List<String> attachments, List<String> recipients) throws EncapsulatedExceptions, AttachmentInvalidException, IOException, InvalidNumberException;
 
     void sendEndSessionMessage(List<String> recipients) throws IOException, EncapsulatedExceptions, InvalidNumberException;
 
 
     void sendEndSessionMessage(List<String> recipients) throws IOException, EncapsulatedExceptions, InvalidNumberException;
 
-    void sendGroupMessage(String message, List<String> attachments, byte[] groupId) throws EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException, IOException;
+    long sendGroupMessage(String message, List<String> attachments, byte[] groupId) throws EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException, IOException;
 
     String getContactName(String number) throws InvalidNumberException;
 
 
     String getContactName(String number) throws InvalidNumberException;
 
index ab7ca2466633abc2d0a30894c498e1ac62dde438..f431d7086b262ee5b33226325e6d7a337760e54c 100644 (file)
@@ -99,12 +99,14 @@ public class SendCommand implements DbusCommand {
             if (attachments == null) {
                 attachments = new ArrayList<>();
             }
             if (attachments == null) {
                 attachments = new ArrayList<>();
             }
+            long timestamp;
             if (ns.getString("group") != null) {
                 byte[] groupId = Util.decodeGroupId(ns.getString("group"));
             if (ns.getString("group") != null) {
                 byte[] groupId = Util.decodeGroupId(ns.getString("group"));
-                signal.sendGroupMessage(messageText, attachments, groupId);
+                timestamp = signal.sendGroupMessage(messageText, attachments, groupId);
             } else {
             } else {
-                signal.sendMessage(messageText, attachments, ns.getList("recipient"));
+                timestamp = signal.sendMessage(messageText, attachments, ns.getList("recipient"));
             }
             }
+            System.out.println(timestamp);
             return 0;
         } catch (IOException e) {
             handleIOException(e);
             return 0;
         } catch (IOException e) {
             handleIOException(e);
index f1316d643ee78ca044ffd6de87706bd73049c109..06350982d41d8719318281ca13f05cf6beaebab9 100644 (file)
@@ -525,7 +525,7 @@ public class Manager implements Signal {
     }
 
     @Override
     }
 
     @Override
-    public void sendGroupMessage(String messageText, List<String> attachments,
+    public long sendGroupMessage(String messageText, List<String> attachments,
                                  byte[] groupId)
             throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException {
         final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder().withBody(messageText);
                                  byte[] groupId)
             throws IOException, EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException {
         final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder().withBody(messageText);
@@ -543,7 +543,7 @@ public class Manager implements Signal {
 
         messageBuilder.withExpiration(g.messageExpirationTime);
 
 
         messageBuilder.withExpiration(g.messageExpirationTime);
 
-        sendMessageLegacy(messageBuilder, g.getMembersWithout(account.getSelfAddress()));
+        return sendMessageLegacy(messageBuilder, g.getMembersWithout(account.getSelfAddress()));
     }
 
     public void sendGroupMessageReaction(String emoji, boolean remove, String targetAuthor,
     }
 
     public void sendGroupMessageReaction(String emoji, boolean remove, String targetAuthor,
@@ -688,15 +688,15 @@ public class Manager implements Signal {
     }
 
     @Override
     }
 
     @Override
-    public void sendMessage(String message, List<String> attachments, String recipient)
+    public long sendMessage(String message, List<String> attachments, String recipient)
             throws EncapsulatedExceptions, AttachmentInvalidException, IOException, InvalidNumberException {
         List<String> recipients = new ArrayList<>(1);
         recipients.add(recipient);
             throws EncapsulatedExceptions, AttachmentInvalidException, IOException, InvalidNumberException {
         List<String> recipients = new ArrayList<>(1);
         recipients.add(recipient);
-        sendMessage(message, attachments, recipients);
+        return sendMessage(message, attachments, recipients);
     }
 
     @Override
     }
 
     @Override
-    public void sendMessage(String messageText, List<String> attachments,
+    public long sendMessage(String messageText, List<String> attachments,
                             List<String> recipients)
             throws IOException, EncapsulatedExceptions, AttachmentInvalidException, InvalidNumberException {
         final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder().withBody(messageText);
                             List<String> recipients)
             throws IOException, EncapsulatedExceptions, AttachmentInvalidException, InvalidNumberException {
         final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder().withBody(messageText);
@@ -716,7 +716,7 @@ public class Manager implements Signal {
 
             messageBuilder.withAttachments(attachmentPointers);
         }
 
             messageBuilder.withAttachments(attachmentPointers);
         }
-        sendMessageLegacy(messageBuilder, getSignalServiceAddresses(recipients));
+        return sendMessageLegacy(messageBuilder, getSignalServiceAddresses(recipients));
     }
 
     public void sendMessageReaction(String emoji, boolean remove, String targetAuthor,
     }
 
     public void sendMessageReaction(String emoji, boolean remove, String targetAuthor,
@@ -1134,8 +1134,10 @@ public class Manager implements Signal {
     /**
      * This method throws an EncapsulatedExceptions exception instead of returning a list of SendMessageResult.
      */
     /**
      * This method throws an EncapsulatedExceptions exception instead of returning a list of SendMessageResult.
      */
-    private void sendMessageLegacy(SignalServiceDataMessage.Builder messageBuilder, Collection<SignalServiceAddress> recipients)
+    private long sendMessageLegacy(SignalServiceDataMessage.Builder messageBuilder, Collection<SignalServiceAddress> recipients)
             throws EncapsulatedExceptions, IOException {
             throws EncapsulatedExceptions, IOException {
+        final long timestamp = System.currentTimeMillis();
+        messageBuilder.withTimestamp(timestamp);
         List<SendMessageResult> results = sendMessage(messageBuilder, recipients);
 
         List<UntrustedIdentityException> untrustedIdentities = new LinkedList<>();
         List<SendMessageResult> results = sendMessage(messageBuilder, recipients);
 
         List<UntrustedIdentityException> untrustedIdentities = new LinkedList<>();
@@ -1154,6 +1156,7 @@ public class Manager implements Signal {
         if (!untrustedIdentities.isEmpty() || !unregisteredUsers.isEmpty() || !networkExceptions.isEmpty()) {
             throw new EncapsulatedExceptions(untrustedIdentities, unregisteredUsers, networkExceptions);
         }
         if (!untrustedIdentities.isEmpty() || !unregisteredUsers.isEmpty() || !networkExceptions.isEmpty()) {
             throw new EncapsulatedExceptions(untrustedIdentities, unregisteredUsers, networkExceptions);
         }
+        return timestamp;
     }
 
     private Collection<SignalServiceAddress> getSignalServiceAddresses(Collection<String> numbers) throws InvalidNumberException {
     }
 
     private Collection<SignalServiceAddress> getSignalServiceAddresses(Collection<String> numbers) throws InvalidNumberException {