diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index dfebe3ac..0d25095d 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -41,6 +41,10 @@ public interface Signal extends DBusInterface { List getGroupIds(); + List listGroups(); + + List listContacts(); + String getGroupName(byte[] groupId); List getGroupMembers(byte[] groupId); diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index fbe3290f..d8f4aa26 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -14,6 +14,7 @@ import org.whispersystems.signalservice.api.messages.SendMessageResult; import org.whispersystems.signalservice.api.push.SignalServiceAddress; import org.whispersystems.signalservice.api.util.InvalidNumberException; import org.whispersystems.libsignal.util.guava.Optional; +import org.asamk.signal.manager.storage.contacts.ContactInfo; import java.io.File; import java.io.IOException; @@ -264,4 +265,27 @@ public class DbusSignalImpl implements Signal { throw new Error.Failure(e.getMessage()); } } + + @Override + public List listGroups() { + List groups = m.getGroups(); + List gr = new ArrayList<>(groups.size()); + for (GroupInfo group : groups) { + String entry="group="+group.getTitle()+" active:"+group.isMember(m.getSelfAddress())+" blocked:"+group.isBlocked(); + gr.add(entry); + } + return gr; + } + + @Override + public List listContacts() { + List contacts = m.getContacts(); + List cc = new ArrayList<>(contacts.size()); + for (ContactInfo c : contacts) { + String entry="number:"+c.number+" name:"+c.name+" blocked:"+c.blocked; + cc.add(entry); + } + return cc; + } + }