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
.signalservice
.api
.push
.SignalServiceAddress
;
10 import org
.whispersystems
.util
.Base64
;
12 import java
.util
.List
;
14 public class ListGroupsCommand
implements LocalCommand
{
16 private static void printGroup(GroupInfo group
, boolean detailed
, SignalServiceAddress address
) {
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()));
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
));
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");
34 public int handleCommand(final Namespace ns
, final Manager m
) {
35 if (!m
.isRegistered()) {
36 System
.err
.println("User is not registered.");
40 List
<GroupInfo
> groups
= m
.getGroups();
41 boolean detailed
= ns
.getBoolean("detailed");
43 for (GroupInfo group
: groups
) {
44 printGroup(group
, detailed
, m
.getSelfAddress());