]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/manager/Manager.java
Extract sending of expiration timer update to separate method
[signal-cli] / src / main / java / org / asamk / signal / manager / Manager.java
index b88e1a9f45d9d756d81fdf2701a895c9d251173e..f2a2648003be36919bc1690175b08290df923069 100644 (file)
@@ -759,13 +759,16 @@ public class Manager implements Closeable {
      * Change the expiration timer for a contact
      */
     public void setExpirationTimer(SignalServiceAddress address, int messageExpirationTimer) throws IOException {
-        final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder();
         ContactInfo contact = account.getContactStore().getContact(address);
         contact.messageExpirationTime = messageExpirationTimer;
         account.getContactStore().updateContact(contact);
+        sendExpirationTimerUpdate(address);
         account.save();
-        messageBuilder.withExpiration(messageExpirationTimer);
-        messageBuilder.asExpirationUpdate();
+    }
+
+    private void sendExpirationTimerUpdate(SignalServiceAddress address) throws IOException {
+        final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder()
+                .asExpirationUpdate();
         sendMessage(messageBuilder, Collections.singleton(address));
     }
 
@@ -1411,6 +1414,11 @@ public class Manager implements Closeable {
                 System.err.println("Ignoring error: " + e.getMessage());
                 continue;
             }
+            if (envelope.hasSource()) {
+                // Store uuid if we don't have it already
+                SignalServiceAddress source = envelope.getSourceAddress();
+                resolveSignalServiceAddress(source);
+            }
             if (!envelope.isReceipt()) {
                 try {
                     content = decryptMessage(envelope);
@@ -1472,6 +1480,9 @@ public class Manager implements Closeable {
             } else {
                 sender = content.getSender();
             }
+            // Store uuid if we don't have it already
+            resolveSignalServiceAddress(sender);
+
             if (content.getDataMessage().isPresent()) {
                 SignalServiceDataMessage message = content.getDataMessage().get();