mirror of
https://github.com/AsamK/signal-cli
synced 2025-09-02 12:30:39 +00:00
send message when expiration time is changed for contact
This commit is contained in:
parent
77e48bf041
commit
a6f961babd
2 changed files with 14 additions and 5 deletions
|
@ -3,6 +3,8 @@ package org.asamk.signal.commands;
|
||||||
import net.sourceforge.argparse4j.inf.Namespace;
|
import net.sourceforge.argparse4j.inf.Namespace;
|
||||||
import net.sourceforge.argparse4j.inf.Subparser;
|
import net.sourceforge.argparse4j.inf.Subparser;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
import org.asamk.signal.manager.Manager;
|
import org.asamk.signal.manager.Manager;
|
||||||
import org.whispersystems.signalservice.api.util.InvalidNumberException;
|
import org.whispersystems.signalservice.api.util.InvalidNumberException;
|
||||||
|
|
||||||
|
@ -41,6 +43,9 @@ public class UpdateContactCommand implements LocalCommand {
|
||||||
}
|
}
|
||||||
} catch (InvalidNumberException e) {
|
} catch (InvalidNumberException e) {
|
||||||
System.out.println("Invalid contact number: " + e.getMessage());
|
System.out.println("Invalid contact number: " + e.getMessage());
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.println("Update contact error: " + e.getMessage());
|
||||||
|
return 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -810,17 +810,21 @@ public class Manager implements Signal, Closeable {
|
||||||
/**
|
/**
|
||||||
* Change the expiration timer for a contact
|
* Change the expiration timer for a contact
|
||||||
*/
|
*/
|
||||||
public void setExpirationTimer(SignalServiceAddress address, int messageExpirationTimer) {
|
public void setExpirationTimer(SignalServiceAddress address, int messageExpirationTimer) throws IOException {
|
||||||
ContactInfo c = account.getContactStore().getContact(address);
|
final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder();
|
||||||
c.messageExpirationTime = messageExpirationTimer;
|
ContactInfo contact = account.getContactStore().getContact(address);
|
||||||
account.getContactStore().updateContact(c);
|
contact.messageExpirationTime = messageExpirationTimer;
|
||||||
|
account.getContactStore().updateContact(contact);
|
||||||
account.save();
|
account.save();
|
||||||
|
messageBuilder.withExpiration(messageExpirationTimer);
|
||||||
|
messageBuilder.asExpirationUpdate();
|
||||||
|
sendMessage(messageBuilder, Collections.singleton(address));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Change the expiration timer for a contact
|
* Change the expiration timer for a contact
|
||||||
*/
|
*/
|
||||||
public void setExpirationTimer(String number, int messageExpirationTimer) throws InvalidNumberException {
|
public void setExpirationTimer(String number, int messageExpirationTimer) throws IOException, InvalidNumberException {
|
||||||
SignalServiceAddress address = canonicalizeAndResolveSignalServiceAddress(number);
|
SignalServiceAddress address = canonicalizeAndResolveSignalServiceAddress(number);
|
||||||
setExpirationTimer(address, messageExpirationTimer);
|
setExpirationTimer(address, messageExpirationTimer);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue