]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
1 package org
.asamk
.signal
.commands
;
3 import net
.sourceforge
.argparse4j
.impl
.Arguments
;
4 import net
.sourceforge
.argparse4j
.inf
.Namespace
;
5 import net
.sourceforge
.argparse4j
.inf
.Subparser
;
7 import org
.asamk
.signal
.manager
.Manager
;
8 import org
.asamk
.signal
.storage
.groups
.GroupInfo
;
9 import org
.whispersystems
.util
.Base64
;
11 import java
.util
.List
;
13 public class ListGroupsCommand
implements LocalCommand
{
15 private static void printGroup(GroupInfo group
, boolean detailed
, String username
) {
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
));
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
));
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");
33 public int handleCommand(final Namespace ns
, final Manager m
) {
34 if (!m
.isRegistered()) {
35 System
.err
.println("User is not registered.");
39 List
<GroupInfo
> groups
= m
.getGroups();
40 boolean detailed
= ns
.getBoolean("detailed");
42 for (GroupInfo group
: groups
) {
43 printGroup(group
, detailed
, m
.getUsername());