]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/manager/Manager.java
If contact name is not set, print profile name instead
[signal-cli] / src / main / java / org / asamk / signal / manager / Manager.java
index 457a6e543eac6343fb8051b8c374a08c3e036f5c..3642d6db5995cb77e44d6992ba20bd31efaf476f 100644 (file)
@@ -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;
@@ -2304,8 +2305,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) {