]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/dbus/DbusManagerImpl.java
Update repackage-native-libs.yml
[signal-cli] / src / main / java / org / asamk / signal / dbus / DbusManagerImpl.java
index bee87d7484b94ad3443bcc8e84ff699b238b99ef..ed27ad6dd98500bb383d770584adf2198175cbac 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
@@ -575,6 +583,9 @@ public class DbusManagerImpl implements Manager {
                     ((List<String>) group.get("Admins").getValue()).stream()
                             .map(m -> new RecipientAddress(null, m))
                             .collect(Collectors.toSet()),
+                    ((List<String>) group.get("Banned").getValue()).stream()
+                            .map(m -> new RecipientAddress(null, m))
+                            .collect(Collectors.toSet()),
                     (boolean) group.get("IsBlocked").getValue(),
                     (int) group.get("MessageExpirationTimer").getValue(),
                     GroupPermission.valueOf((String) group.get("PermissionAddMember").getValue()),
@@ -621,6 +632,10 @@ public class DbusManagerImpl implements Manager {
         throw new UnsupportedOperationException();
     }
 
+    @Override
+    public void addAddressChangedListener(final Runnable listener) {
+    }
+
     @Override
     public void addClosedListener(final Runnable listener) {
         synchronized (closedListeners) {