X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/804ad34a0828d7b841f3fecd9af8f2bd948d31d3..80e15ad54eff0d0552bea1db45208a6b80c19e16:/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 457a6e54..b8a0f57b 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -137,6 +137,7 @@ import org.whispersystems.signalservice.internal.push.SignalServiceProtos; import org.whispersystems.signalservice.internal.push.UnsupportedDataMessageException; import org.whispersystems.signalservice.internal.util.DynamicCredentialsProvider; import org.whispersystems.signalservice.internal.util.Hex; +import org.whispersystems.signalservice.internal.util.Util; import java.io.Closeable; import java.io.File; @@ -414,6 +415,9 @@ public class Manager implements Closeable { } public void setRegistrationLockPin(Optional pin) throws IOException, UnauthenticatedResponseException { + if (!account.isMasterDevice()) { + throw new RuntimeException("Only master device can set a PIN"); + } if (pin.isPresent()) { final MasterKey masterKey = account.getPinMasterKey() != null ? account.getPinMasterKey() @@ -2304,8 +2308,20 @@ public class Manager implements Closeable { return account.getContactStore().getContacts(); } - public ContactInfo getContact(String number) { - return account.getContactStore().getContact(Utils.getSignalServiceAddressFromIdentifier(number)); + public String getContactOrProfileName(String number) { + final SignalServiceAddress address = Utils.getSignalServiceAddressFromIdentifier(number); + + final ContactInfo contact = account.getContactStore().getContact(address); + if (contact != null && !Util.isEmpty(contact.name)) { + return contact.name; + } + + final SignalProfileEntry profileEntry = account.getProfileStore().getProfileEntry(address); + if (profileEntry != null && profileEntry.getProfile() != null) { + return profileEntry.getProfile().getName(); + } + + return null; } public GroupInfo getGroup(GroupId groupId) {