]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/manager/Manager.java
Contact config - message expiration time (#308)
[signal-cli] / src / main / java / org / asamk / signal / manager / Manager.java
index 01275cec526c0136cf13e84f86ae370ea676e178..b88e1a9f45d9d756d81fdf2701a895c9d251173e 100644 (file)
@@ -758,10 +758,23 @@ public class Manager implements Closeable {
     /**
      * Change the expiration timer for a contact
      */
-    public void setExpirationTimer(SignalServiceAddress address, int messageExpirationTimer) {
-        ContactInfo c = account.getContactStore().getContact(address);
-        c.messageExpirationTime = messageExpirationTimer;
-        account.getContactStore().updateContact(c);
+    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);
+        account.save();
+        messageBuilder.withExpiration(messageExpirationTimer);
+        messageBuilder.asExpirationUpdate();
+        sendMessage(messageBuilder, Collections.singleton(address));
+    }
+
+    /**
+     * Change the expiration timer for a contact
+     */
+    public void setExpirationTimer(String number, int messageExpirationTimer) throws IOException, InvalidNumberException {
+        SignalServiceAddress address = canonicalizeAndResolveSignalServiceAddress(number);
+        setExpirationTimer(address, messageExpirationTimer);
     }
 
     /**