]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/UpdateGroupCommand.java
Implement configuring of group link
[signal-cli] / src / main / java / org / asamk / signal / commands / UpdateGroupCommand.java
index 873074467e9956462e6576cfcf6877112369b859..64485f6d2427b0f19a588d9f555eee156ee01ff2 100644 (file)
@@ -1,9 +1,11 @@
 package org.asamk.signal.commands;
 
 package org.asamk.signal.commands;
 
+import net.sourceforge.argparse4j.impl.Arguments;
 import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.Signal;
 import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.Signal;
+import org.asamk.signal.GroupLinkState;
 import org.asamk.signal.PlainTextWriterImpl;
 import org.asamk.signal.commands.exceptions.CommandException;
 import org.asamk.signal.commands.exceptions.UnexpectedErrorException;
 import org.asamk.signal.PlainTextWriterImpl;
 import org.asamk.signal.commands.exceptions.CommandException;
 import org.asamk.signal.commands.exceptions.UnexpectedErrorException;
@@ -46,6 +48,12 @@ public class UpdateGroupCommand implements DbusCommand, LocalCommand {
                 .nargs("*")
                 .help("Specify one or more members to remove group admin privileges");
 
                 .nargs("*")
                 .help("Specify one or more members to remove group admin privileges");
 
+        subparser.addArgument("--reset-link")
+                .action(Arguments.storeTrue())
+                .help("Reset group link and create new link password");
+        subparser.addArgument("--link")
+                .help("Set group link state, with or without admin approval")
+                .type(Arguments.enumStringType(GroupLinkState.class));
     }
 
     @Override
     }
 
     @Override
@@ -65,16 +73,20 @@ public class UpdateGroupCommand implements DbusCommand, LocalCommand {
 
         var groupDescription = ns.getString("description");
 
 
         var groupDescription = ns.getString("description");
 
-        List<String> groupMembers = ns.getList("member");
+        var groupMembers = ns.<String>getList("member");
 
 
-        List<String> groupRemoveMembers = ns.getList("remove-member");
+        var groupRemoveMembers = ns.<String>getList("remove-member");
 
 
-        List<String> groupAdmins = ns.getList("admin");
+        var groupAdmins = ns.<String>getList("admin");
 
 
-        List<String> groupRemoveAdmins = ns.getList("remove-admin");
+        var groupRemoveAdmins = ns.<String>getList("remove-admin");
 
         var groupAvatar = ns.getString("avatar");
 
 
         var groupAvatar = ns.getString("avatar");
 
+        var groupResetLink = ns.getBoolean("reset-link");
+
+        var groupLinkState = ns.<GroupLinkState>get("link");
+
         try {
             if (groupId == null) {
                 var results = m.createGroup(groupName,
         try {
             if (groupId == null) {
                 var results = m.createGroup(groupName,
@@ -91,6 +103,8 @@ public class UpdateGroupCommand implements DbusCommand, LocalCommand {
                         groupRemoveMembers,
                         groupAdmins,
                         groupRemoveAdmins,
                         groupRemoveMembers,
                         groupAdmins,
                         groupRemoveAdmins,
+                        groupResetLink,
+                        groupLinkState != null ? groupLinkState.toLinkState() : null,
                         groupAvatar == null ? null : new File(groupAvatar));
                 ErrorUtils.handleTimestampAndSendMessageResults(writer, results.first(), results.second());
             }
                         groupAvatar == null ? null : new File(groupAvatar));
                 ErrorUtils.handleTimestampAndSendMessageResults(writer, results.first(), results.second());
             }