void deleteContact(RecipientIdentifier.Single recipient);
void setContactName(
- RecipientIdentifier.Single recipient, String name
+ RecipientIdentifier.Single recipient, String givenName, final String familyName
) throws NotPrimaryDeviceException, IOException, UnregisteredRecipientException;
void setContactsBlocked(
@Override
public void setContactName(
- RecipientIdentifier.Single recipient, String name
+ RecipientIdentifier.Single recipient, String givenName, final String familyName
) throws NotPrimaryDeviceException, UnregisteredRecipientException {
if (!account.isPrimaryDevice()) {
throw new NotPrimaryDeviceException();
}
- context.getContactHelper().setContactName(context.getRecipientHelper().resolveRecipient(recipient), name);
+ context.getContactHelper()
+ .setContactName(context.getRecipientHelper().resolveRecipient(recipient), givenName, familyName);
}
@Override
return sourceContact != null && sourceContact.isBlocked();
}
- public void setContactName(final RecipientId recipientId, final String name) {
+ public void setContactName(final RecipientId recipientId, final String givenName, final String familyName) {
var contact = account.getContactStore().getContact(recipientId);
final var builder = contact == null ? Contact.newBuilder() : Contact.newBuilder(contact);
- account.getContactStore().storeContact(recipientId, builder.withGivenName(name).build());
+ if (givenName != null) {
+ builder.withGivenName(givenName);
+ }
+ if (familyName != null) {
+ builder.withFamilyName(familyName);
+ }
+ account.getContactStore().storeContact(recipientId, builder.build());
}
public void setExpirationTimer(RecipientId recipientId, int messageExpirationTimer) {
NUMBER::
Specify the contact phone number.
-*-n*, *--name*::
-Specify the new name for this contact.
+*--given-name* NAME, *--name* NAME::
+New (given) name.
+
+*--family-name* FAMILY_NAME::
+New family name.
*-e*, *--expiration* EXPIRATION_SECONDS::
Set expiration time of messages (seconds).
subparser.help("Update the details of a given contact");
subparser.addArgument("recipient").help("Contact number");
subparser.addArgument("-n", "--name").help("New contact name");
+ subparser.addArgument("--given-name").help("New contact given name");
+ subparser.addArgument("--family-name").help("New contact family name");
subparser.addArgument("-e", "--expiration").type(int.class).help("Set expiration time of messages (seconds)");
}
m.setExpirationTimer(recipient, expiration);
}
- var name = ns.getString("name");
- if (name != null) {
- m.setContactName(recipient, name);
+ var givenName = ns.getString("given-name");
+ var familyName = ns.getString("family-name");
+ if (givenName == null) {
+ givenName = ns.getString("name");
+ if (givenName != null && familyName == null) {
+ familyName = "";
+ }
+ }
+ if (givenName != null || familyName != null) {
+ m.setContactName(recipient, givenName, familyName);
}
} catch (IOException e) {
throw new IOErrorException("Update contact error: " + e.getMessage(), e);
@Override
public void setContactName(
- final RecipientIdentifier.Single recipient, final String name
+ final RecipientIdentifier.Single recipient, final String givenName, final String familyName
) throws NotPrimaryDeviceException {
- signal.setContactName(recipient.getIdentifier(), name);
+ signal.setContactName(recipient.getIdentifier(), givenName);
}
@Override
@Override
public void setContactName(final String number, final String name) {
try {
- m.setContactName(getSingleRecipientIdentifier(number, m.getSelfNumber()), name);
+ m.setContactName(getSingleRecipientIdentifier(number, m.getSelfNumber()), name, "");
} catch (NotPrimaryDeviceException e) {
throw new Error.Failure("This command doesn't work on linked devices.");
} catch (IOException e) {