]> nmode's Git Repositories - signal-cli/commitdiff
Show pending and requesting members of v2 groups
authorAsamK <asamk@gmx.de>
Fri, 4 Dec 2020 18:51:36 +0000 (19:51 +0100)
committerAsamK <asamk@gmx.de>
Fri, 4 Dec 2020 18:51:36 +0000 (19:51 +0100)
src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
src/main/java/org/asamk/signal/manager/Manager.java
src/main/java/org/asamk/signal/storage/groups/GroupInfo.java
src/main/java/org/asamk/signal/storage/groups/GroupInfoV2.java

index 9e13685e8b2abe5e9311ae4b7d538081dca31f8a..d6297f9ddb7ce6749c32d66107dfc90aa8d446a4 100644 (file)
@@ -22,8 +22,21 @@ public class ListGroupsCommand implements LocalCommand {
                     .map(m::resolveSignalServiceAddress)
                     .map(SignalServiceAddress::getLegacyIdentifier)
                     .collect(Collectors.toSet());
                     .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<String> pendingMembers = group.getPendingMembers()
+                    .stream()
+                    .map(m::resolveSignalServiceAddress)
+                    .map(SignalServiceAddress::getLegacyIdentifier)
+                    .collect(Collectors.toSet());
+
+            Set<String> 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()));
         } 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()));
index 3eab843e3391bfe276d97b92c536f8d87e5469bd..ba499093a9ae479603dd664b73b57466d27a008d 100644 (file)
@@ -250,9 +250,6 @@ public class Manager implements Closeable {
         Manager m = new Manager(account, pathConfig, serviceConfiguration, userAgent);
 
         m.migrateLegacyConfigs();
         Manager m = new Manager(account, pathConfig, serviceConfiguration, userAgent);
 
         m.migrateLegacyConfigs();
-        if (m.isRegistered()) {
-            m.updateAccountAttributes();
-        }
 
         return m;
     }
 
         return m;
     }
@@ -290,6 +287,7 @@ public class Manager implements Closeable {
                 account.setUuid(accountManager.getOwnUuid());
                 account.save();
             }
                 account.setUuid(accountManager.getOwnUuid());
                 account.save();
             }
+            updateAccountAttributes();
         }
     }
 
         }
     }
 
index db4f46908f0de50fbce75273d15b94f86317892a..d24a2694251ef85215559c24d544f85ab7d4ff13 100644 (file)
@@ -23,6 +23,16 @@ public abstract class GroupInfo {
     @JsonIgnore
     public abstract Set<SignalServiceAddress> getMembers();
 
     @JsonIgnore
     public abstract Set<SignalServiceAddress> getMembers();
 
+    @JsonIgnore
+    public Set<SignalServiceAddress> getPendingMembers() {
+        return Set.of();
+    }
+
+    @JsonIgnore
+    public Set<SignalServiceAddress> getRequestingMembers() {
+        return Set.of();
+    }
+
     @JsonIgnore
     public abstract boolean isBlocked();
 
     @JsonIgnore
     public abstract boolean isBlocked();
 
index 5e3115a1a696d29fc22dcddd9817d9e24b973d9e..823912d93bdddd626f99fb3ced790708766895aa 100644 (file)
@@ -51,6 +51,26 @@ public class GroupInfoV2 extends GroupInfo {
                 .collect(Collectors.toSet());
     }
 
                 .collect(Collectors.toSet());
     }
 
+    @Override
+    public Set<SignalServiceAddress> 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<SignalServiceAddress> 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;
     @Override
     public boolean isBlocked() {
         return blocked;