]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
Add a new sync dbus message which shows messages you sent. Necessary for having synch...
[signal-cli] / src / main / java / org / asamk / signal / commands / ListGroupsCommand.java
1 package org.asamk.signal.commands;
2
3 import net.sourceforge.argparse4j.impl.Arguments;
4 import net.sourceforge.argparse4j.inf.Namespace;
5 import net.sourceforge.argparse4j.inf.Subparser;
6
7 import org.asamk.signal.manager.Manager;
8 import org.asamk.signal.storage.groups.GroupInfo;
9 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
10 import org.whispersystems.util.Base64;
11
12 import java.util.List;
13
14 public class ListGroupsCommand implements LocalCommand {
15
16 private static void printGroup(GroupInfo group, boolean detailed, SignalServiceAddress address) {
17 if (detailed) {
18 System.out.println(String.format("Id: %s Name: %s Active: %s Blocked: %b Members: %s",
19 Base64.encodeBytes(group.groupId), group.name, group.isMember(address), group.blocked, group.getMembersE164()));
20 } else {
21 System.out.println(String.format("Id: %s Name: %s Active: %s Blocked: %b",
22 Base64.encodeBytes(group.groupId), group.name, group.isMember(address), group.blocked));
23 }
24 }
25
26 @Override
27 public void attachToSubparser(final Subparser subparser) {
28 subparser.addArgument("-d", "--detailed").action(Arguments.storeTrue())
29 .help("List members of each group");
30 subparser.help("List group name and ids");
31 }
32
33 @Override
34 public int handleCommand(final Namespace ns, final Manager m) {
35 if (!m.isRegistered()) {
36 System.err.println("User is not registered.");
37 return 1;
38 }
39
40 List<GroupInfo> groups = m.getGroups();
41 boolean detailed = ns.getBoolean("detailed");
42
43 for (GroupInfo group : groups) {
44 printGroup(group, detailed, m.getSelfAddress());
45 }
46 return 0;
47 }
48 }