]> nmode's Git Repositories - signal-cli/commitdiff
Add listContacts subcommand (#248)
authorVisibleCode <visiblecode@users.noreply.github.com>
Tue, 3 Dec 2019 20:57:27 +0000 (12:57 -0800)
committerAsamK <asamk@gmx.de>
Tue, 3 Dec 2019 20:57:27 +0000 (21:57 +0100)
src/main/java/org/asamk/signal/commands/Commands.java
src/main/java/org/asamk/signal/commands/ListContactsCommand.java [new file with mode: 0644]
src/main/java/org/asamk/signal/manager/Manager.java

index afd93e320ba188c37b08f5b305150215f50353eb..aa53d3391d1d20a68b2b739f337732aac2383d66 100644 (file)
@@ -11,6 +11,7 @@ public class Commands {
         addCommand("addDevice", new AddDeviceCommand());
         addCommand("daemon", new DaemonCommand());
         addCommand("link", new LinkCommand());
         addCommand("addDevice", new AddDeviceCommand());
         addCommand("daemon", new DaemonCommand());
         addCommand("link", new LinkCommand());
+        addCommand("listContacts", new ListContactsCommand());
         addCommand("listDevices", new ListDevicesCommand());
         addCommand("listGroups", new ListGroupsCommand());
         addCommand("listIdentities", new ListIdentitiesCommand());
         addCommand("listDevices", new ListDevicesCommand());
         addCommand("listGroups", new ListGroupsCommand());
         addCommand("listIdentities", new ListIdentitiesCommand());
diff --git a/src/main/java/org/asamk/signal/commands/ListContactsCommand.java b/src/main/java/org/asamk/signal/commands/ListContactsCommand.java
new file mode 100644 (file)
index 0000000..44f4d09
--- /dev/null
@@ -0,0 +1,27 @@
+package org.asamk.signal.commands;
+
+import net.sourceforge.argparse4j.inf.Namespace;
+import net.sourceforge.argparse4j.inf.Subparser;
+
+import org.asamk.signal.manager.Manager;
+import org.asamk.signal.storage.contacts.ContactInfo;
+import java.util.List;
+
+public class ListContactsCommand implements LocalCommand {
+    @Override
+    public void attachToSubparser(final Subparser subparser) {
+    }
+
+    @Override
+    public int handleCommand(final Namespace ns, final Manager m) {
+        if (!m.isRegistered()) {
+            System.err.println("User is not registered.");
+            return 1;
+        }
+        List<ContactInfo> contacts = m.getContacts();
+        for (ContactInfo c : contacts) {
+            System.out.println(String.format("Number: %s Name: %s", c.number, c.name));
+        }
+        return 0;
+    }
+}
index e804d75ac8a5da2e772c785ff891fe2ac9d78dec..c2b139feeb7818282209ef61d33a96ae95dee6fc 100644 (file)
@@ -1484,6 +1484,10 @@ public class Manager implements Signal {
         sendSyncMessage(SignalServiceSyncMessage.forVerified(verifiedMessage));
     }
 
         sendSyncMessage(SignalServiceSyncMessage.forVerified(verifiedMessage));
     }
 
+    public List<ContactInfo> getContacts() {
+        return account.getContactStore().getContacts();
+    }
+
     public ContactInfo getContact(String number) {
         return account.getContactStore().getContact(number);
     }
     public ContactInfo getContact(String number) {
         return account.getContactStore().getContact(number);
     }