]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
Reformat project
[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.util.Base64;
10
11 import java.util.List;
12
13 public class ListGroupsCommand implements LocalCommand {
14
15 private static void printGroup(GroupInfo group, boolean detailed, String username) {
16 if (detailed) {
17 System.out.println(String.format("Id: %s Name: %s Active: %s Blocked: %b Members: %s",
18 Base64.encodeBytes(group.groupId), group.name, group.members.contains(username), group.blocked, group.members));
19 } else {
20 System.out.println(String.format("Id: %s Name: %s Active: %s Blocked: %b",
21 Base64.encodeBytes(group.groupId), group.name, group.members.contains(username), group.blocked));
22 }
23 }
24
25 @Override
26 public void attachToSubparser(final Subparser subparser) {
27 subparser.addArgument("-d", "--detailed").action(Arguments.storeTrue())
28 .help("List members of each group");
29 subparser.help("List group name and ids");
30 }
31
32 @Override
33 public int handleCommand(final Namespace ns, final Manager m) {
34 if (!m.isRegistered()) {
35 System.err.println("User is not registered.");
36 return 1;
37 }
38
39 List<GroupInfo> groups = m.getGroups();
40 boolean detailed = ns.getBoolean("detailed");
41
42 for (GroupInfo group : groups) {
43 printGroup(group, detailed, m.getUsername());
44 }
45 return 0;
46 }
47 }