]> nmode's Git Repositories - signal-cli/commitdiff
Implement basic listAccounts for dbus client mode
authorAsamK <asamk@gmx.de>
Sat, 12 Feb 2022 10:20:05 +0000 (11:20 +0100)
committerAsamK <asamk@gmx.de>
Sat, 12 Feb 2022 10:20:05 +0000 (11:20 +0100)
Fixes #891

src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java

index 51323395fa3576bee1c4b16a1b85dec73fa8f293..8d8d333f290f475bd46f7efa7872f66ab34accee 100644 (file)
@@ -50,6 +50,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.UUID;
@@ -540,7 +541,14 @@ public class DbusManagerImpl implements Manager {
 
     @Override
     public List<Pair<RecipientAddress, Contact>> getContacts() {
-        throw new UnsupportedOperationException();
+        return signal.listNumbers().stream().map(n -> {
+            final var contactName = signal.getContactName(n);
+            if (contactName.length() == 0) {
+                return null;
+            }
+            return new Pair<>(new RecipientAddress(null, n),
+                    new Contact(contactName, null, 0, signal.isContactBlocked(n), false));
+        }).filter(Objects::nonNull).toList();
     }
 
     @Override