X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/1e0aa8929d059b0740da496f6f4ac62159e75141..b382a4260b367311945344715842588f333af0a6:/src/main/java/org/asamk/signal/manager/Manager.java diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 01275cec..b88e1a9f 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -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); } /**