From: AsamK Date: Tue, 21 Jan 2020 21:00:38 +0000 (+0100) Subject: Canonicalize number before getting/setting contact info X-Git-Tag: v0.6.6~40 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/cfd1e5544d832718eaf2558bd5a02150d432fc19?ds=sidebyside Canonicalize number before getting/setting contact info --- diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index 6fb59303..30d8f514 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -6,6 +6,7 @@ import org.freedesktop.dbus.DBusInterface; import org.freedesktop.dbus.DBusSignal; import org.freedesktop.dbus.exceptions.DBusException; import org.whispersystems.signalservice.api.push.exceptions.EncapsulatedExceptions; +import org.whispersystems.signalservice.api.util.InvalidNumberException; import java.io.IOException; import java.util.List; @@ -20,9 +21,9 @@ public interface Signal extends DBusInterface { void sendGroupMessage(String message, List attachments, byte[] groupId) throws EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException, IOException; - String getContactName(String number); + String getContactName(String number) throws InvalidNumberException; - void setContactName(String number, String name); + void setContactName(String number, String name) throws InvalidNumberException; List getGroupIds(); diff --git a/src/main/java/org/asamk/signal/commands/UpdateContactCommand.java b/src/main/java/org/asamk/signal/commands/UpdateContactCommand.java index e1afca69..77f38e5e 100644 --- a/src/main/java/org/asamk/signal/commands/UpdateContactCommand.java +++ b/src/main/java/org/asamk/signal/commands/UpdateContactCommand.java @@ -4,6 +4,7 @@ import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Subparser; import org.asamk.signal.manager.Manager; +import org.whispersystems.signalservice.api.util.InvalidNumberException; public class UpdateContactCommand implements LocalCommand { @@ -27,7 +28,11 @@ public class UpdateContactCommand implements LocalCommand { String number = ns.getString("number"); String name = ns.getString("name"); - m.setContactName(number, name); + try { + m.setContactName(number, name); + } catch (InvalidNumberException e) { + System.out.println("Invalid contact number: " + e.getMessage()); + } return 0; } diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 5e0ad75f..50da5f23 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -675,8 +675,9 @@ public class Manager implements Signal { } @Override - public String getContactName(String number) { - ContactInfo contact = account.getContactStore().getContact(number); + public String getContactName(String number) throws InvalidNumberException { + String canonicalizedNumber = Utils.canonicalizeNumber(number, username); + ContactInfo contact = account.getContactStore().getContact(canonicalizedNumber); if (contact == null) { return ""; } else { @@ -685,14 +686,15 @@ public class Manager implements Signal { } @Override - public void setContactName(String number, String name) { - ContactInfo contact = account.getContactStore().getContact(number); + public void setContactName(String number, String name) throws InvalidNumberException { + String canonicalizedNumber = Utils.canonicalizeNumber(number, username); + ContactInfo contact = account.getContactStore().getContact(canonicalizedNumber); if (contact == null) { contact = new ContactInfo(); - contact.number = number; - System.err.println("Add contact " + number + " named " + name); + contact.number = canonicalizedNumber; + System.err.println("Add contact " + canonicalizedNumber + " named " + name); } else { - System.err.println("Updating contact " + number + " name " + contact.name + " -> " + name); + System.err.println("Updating contact " + canonicalizedNumber + " name " + contact.name + " -> " + name); } contact.name = name; account.getContactStore().updateContact(contact);