From: AsamK Date: Fri, 4 Dec 2020 18:51:36 +0000 (+0100) Subject: Show pending and requesting members of v2 groups X-Git-Tag: v0.7.0~9 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/d267974223294b9ac08491999d8f2bece2b80c54?ds=inline Show pending and requesting members of v2 groups --- diff --git a/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java b/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java index 9e13685e..d6297f9d 100644 --- a/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java +++ b/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java @@ -22,8 +22,21 @@ public class ListGroupsCommand implements LocalCommand { .map(m::resolveSignalServiceAddress) .map(SignalServiceAddress::getLegacyIdentifier) .collect(Collectors.toSet()); - System.out.println(String.format("Id: %s Name: %s Active: %s Blocked: %b Members: %s", - Base64.encodeBytes(group.groupId), group.getTitle(), group.isMember(m.getSelfAddress()), group.isBlocked(), members)); + + Set pendingMembers = group.getPendingMembers() + .stream() + .map(m::resolveSignalServiceAddress) + .map(SignalServiceAddress::getLegacyIdentifier) + .collect(Collectors.toSet()); + + Set requestingMembers = group.getRequestingMembers() + .stream() + .map(m::resolveSignalServiceAddress) + .map(SignalServiceAddress::getLegacyIdentifier) + .collect(Collectors.toSet()); + + System.out.println(String.format("Id: %s Name: %s Active: %s Blocked: %b Members: %s Pending members: %s Requesting members: %s", + Base64.encodeBytes(group.groupId), group.getTitle(), group.isMember(m.getSelfAddress()), group.isBlocked(), members, pendingMembers, requestingMembers)); } else { System.out.println(String.format("Id: %s Name: %s Active: %s Blocked: %b", Base64.encodeBytes(group.groupId), group.getTitle(), group.isMember(m.getSelfAddress()), group.isBlocked())); diff --git a/src/main/java/org/asamk/signal/manager/Manager.java b/src/main/java/org/asamk/signal/manager/Manager.java index 3eab843e..ba499093 100644 --- a/src/main/java/org/asamk/signal/manager/Manager.java +++ b/src/main/java/org/asamk/signal/manager/Manager.java @@ -250,9 +250,6 @@ public class Manager implements Closeable { Manager m = new Manager(account, pathConfig, serviceConfiguration, userAgent); m.migrateLegacyConfigs(); - if (m.isRegistered()) { - m.updateAccountAttributes(); - } return m; } @@ -290,6 +287,7 @@ public class Manager implements Closeable { account.setUuid(accountManager.getOwnUuid()); account.save(); } + updateAccountAttributes(); } } diff --git a/src/main/java/org/asamk/signal/storage/groups/GroupInfo.java b/src/main/java/org/asamk/signal/storage/groups/GroupInfo.java index db4f4690..d24a2694 100644 --- a/src/main/java/org/asamk/signal/storage/groups/GroupInfo.java +++ b/src/main/java/org/asamk/signal/storage/groups/GroupInfo.java @@ -23,6 +23,16 @@ public abstract class GroupInfo { @JsonIgnore public abstract Set getMembers(); + @JsonIgnore + public Set getPendingMembers() { + return Set.of(); + } + + @JsonIgnore + public Set getRequestingMembers() { + return Set.of(); + } + @JsonIgnore public abstract boolean isBlocked(); diff --git a/src/main/java/org/asamk/signal/storage/groups/GroupInfoV2.java b/src/main/java/org/asamk/signal/storage/groups/GroupInfoV2.java index 5e3115a1..823912d9 100644 --- a/src/main/java/org/asamk/signal/storage/groups/GroupInfoV2.java +++ b/src/main/java/org/asamk/signal/storage/groups/GroupInfoV2.java @@ -51,6 +51,26 @@ public class GroupInfoV2 extends GroupInfo { .collect(Collectors.toSet()); } + @Override + public Set getPendingMembers() { + if (this.group == null) { + return Collections.emptySet(); + } + return group.getPendingMembersList().stream() + .map(m -> new SignalServiceAddress(UuidUtil.parseOrThrow(m.getUuid().toByteArray()), null)) + .collect(Collectors.toSet()); + } + + @Override + public Set getRequestingMembers() { + if (this.group == null) { + return Collections.emptySet(); + } + return group.getRequestingMembersList().stream() + .map(m -> new SignalServiceAddress(UuidUtil.parseOrThrow(m.getUuid().toByteArray()), null)) + .collect(Collectors.toSet()); + } + @Override public boolean isBlocked() { return blocked;