mirror of
https://github.com/AsamK/signal-cli
synced 2025-08-29 18:40:39 +00:00
Canonicalize number before getting/setting contact info
This commit is contained in:
parent
eca1737d28
commit
cfd1e5544d
3 changed files with 18 additions and 10 deletions
|
@ -6,6 +6,7 @@ import org.freedesktop.dbus.DBusInterface;
|
||||||
import org.freedesktop.dbus.DBusSignal;
|
import org.freedesktop.dbus.DBusSignal;
|
||||||
import org.freedesktop.dbus.exceptions.DBusException;
|
import org.freedesktop.dbus.exceptions.DBusException;
|
||||||
import org.whispersystems.signalservice.api.push.exceptions.EncapsulatedExceptions;
|
import org.whispersystems.signalservice.api.push.exceptions.EncapsulatedExceptions;
|
||||||
|
import org.whispersystems.signalservice.api.util.InvalidNumberException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -20,9 +21,9 @@ public interface Signal extends DBusInterface {
|
||||||
|
|
||||||
void sendGroupMessage(String message, List<String> attachments, byte[] groupId) throws EncapsulatedExceptions, GroupNotFoundException, AttachmentInvalidException, IOException;
|
void sendGroupMessage(String message, List<String> 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<byte[]> getGroupIds();
|
List<byte[]> getGroupIds();
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import net.sourceforge.argparse4j.inf.Namespace;
|
||||||
import net.sourceforge.argparse4j.inf.Subparser;
|
import net.sourceforge.argparse4j.inf.Subparser;
|
||||||
|
|
||||||
import org.asamk.signal.manager.Manager;
|
import org.asamk.signal.manager.Manager;
|
||||||
|
import org.whispersystems.signalservice.api.util.InvalidNumberException;
|
||||||
|
|
||||||
public class UpdateContactCommand implements LocalCommand {
|
public class UpdateContactCommand implements LocalCommand {
|
||||||
|
|
||||||
|
@ -27,7 +28,11 @@ public class UpdateContactCommand implements LocalCommand {
|
||||||
String number = ns.getString("number");
|
String number = ns.getString("number");
|
||||||
String name = ns.getString("name");
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -675,8 +675,9 @@ public class Manager implements Signal {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getContactName(String number) {
|
public String getContactName(String number) throws InvalidNumberException {
|
||||||
ContactInfo contact = account.getContactStore().getContact(number);
|
String canonicalizedNumber = Utils.canonicalizeNumber(number, username);
|
||||||
|
ContactInfo contact = account.getContactStore().getContact(canonicalizedNumber);
|
||||||
if (contact == null) {
|
if (contact == null) {
|
||||||
return "";
|
return "";
|
||||||
} else {
|
} else {
|
||||||
|
@ -685,14 +686,15 @@ public class Manager implements Signal {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setContactName(String number, String name) {
|
public void setContactName(String number, String name) throws InvalidNumberException {
|
||||||
ContactInfo contact = account.getContactStore().getContact(number);
|
String canonicalizedNumber = Utils.canonicalizeNumber(number, username);
|
||||||
|
ContactInfo contact = account.getContactStore().getContact(canonicalizedNumber);
|
||||||
if (contact == null) {
|
if (contact == null) {
|
||||||
contact = new ContactInfo();
|
contact = new ContactInfo();
|
||||||
contact.number = number;
|
contact.number = canonicalizedNumber;
|
||||||
System.err.println("Add contact " + number + " named " + name);
|
System.err.println("Add contact " + canonicalizedNumber + " named " + name);
|
||||||
} else {
|
} else {
|
||||||
System.err.println("Updating contact " + number + " name " + contact.name + " -> " + name);
|
System.err.println("Updating contact " + canonicalizedNumber + " name " + contact.name + " -> " + name);
|
||||||
}
|
}
|
||||||
contact.name = name;
|
contact.name = name;
|
||||||
account.getContactStore().updateContact(contact);
|
account.getContactStore().updateContact(contact);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue