From e508fc50e9d9efcc9259897c27ed9ba13d19de42 Mon Sep 17 00:00:00 2001 From: VisibleCode Date: Tue, 3 Dec 2019 12:57:27 -0800 Subject: [PATCH] Add listContacts subcommand (#248) --- .../org/asamk/signal/commands/Commands.java | 1 + .../signal/commands/ListContactsCommand.java | 27 +++++++++++++++++++ .../org/asamk/signal/manager/Manager.java | 4 +++ 3 files changed, 32 insertions(+) create mode 100644 src/main/java/org/asamk/signal/commands/ListContactsCommand.java diff --git a/src/main/java/org/asamk/signal/commands/Commands.java b/src/main/java/org/asamk/signal/commands/Commands.java index afd93e32..aa53d339 100644 --- a/src/main/java/org/asamk/signal/commands/Commands.java +++ b/src/main/java/org/asamk/signal/commands/Commands.java @@ -11,6 +11,7 @@ public class Commands { 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()); 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 index 00000000..44f4d094 --- /dev/null +++ b/src/main/java/org/asamk/signal/commands/ListContactsCommand.java @@ -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 contacts = m.getContacts(); + for (ContactInfo c : contacts) { + System.out.println(String.format("Number: %s Name: %s", c.number, c.name)); + } + return 0; + } +} diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index e804d75a..c2b139fe 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -1484,6 +1484,10 @@ public class Manager implements Signal { sendSyncMessage(SignalServiceSyncMessage.forVerified(verifiedMessage)); } + public List getContacts() { + return account.getContactStore().getContacts(); + } + public ContactInfo getContact(String number) { return account.getContactStore().getContact(number); } -- 2.50.1