X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/3de30e166f4eb6be0cd10548ed2c6cce2fe2282e..03589f858ba2cf52df4d85a9d68df3f3cda5cb74:/lib/src/main/java/org/asamk/signal/manager/Manager.java diff --git a/lib/src/main/java/org/asamk/signal/manager/Manager.java b/lib/src/main/java/org/asamk/signal/manager/Manager.java index b003279a..03f4e8e9 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -23,6 +23,7 @@ import org.asamk.signal.manager.config.ServiceEnvironmentConfig; import org.asamk.signal.manager.groups.GroupId; import org.asamk.signal.manager.groups.GroupIdV1; import org.asamk.signal.manager.groups.GroupInviteLinkUrl; +import org.asamk.signal.manager.groups.GroupLinkState; import org.asamk.signal.manager.groups.GroupNotFoundException; import org.asamk.signal.manager.groups.GroupUtils; import org.asamk.signal.manager.groups.NotAGroupMemberException; @@ -833,6 +834,8 @@ public class Manager implements Closeable { List removeMembers, List admins, List removeAdmins, + boolean resetGroupLink, + GroupLinkState groupLinkState, File avatarFile ) throws IOException, GroupNotFoundException, AttachmentInvalidException, InvalidNumberException, NotAGroupMemberException { return updateGroup(groupId, @@ -842,6 +845,8 @@ public class Manager implements Closeable { removeMembers == null ? null : getSignalServiceAddresses(removeMembers), admins == null ? null : getSignalServiceAddresses(admins), removeAdmins == null ? null : getSignalServiceAddresses(removeAdmins), + resetGroupLink, + groupLinkState, avatarFile); } @@ -853,6 +858,8 @@ public class Manager implements Closeable { final Set removeMembers, final Set admins, final Set removeAdmins, + final boolean resetGroupLink, + final GroupLinkState groupLinkState, final File avatarFile ) throws IOException, GroupNotFoundException, AttachmentInvalidException, NotAGroupMemberException { var group = getGroupForUpdating(groupId); @@ -865,6 +872,8 @@ public class Manager implements Closeable { removeMembers, admins, removeAdmins, + resetGroupLink, + groupLinkState, avatarFile); } @@ -928,6 +937,8 @@ public class Manager implements Closeable { final Set removeMembers, final Set admins, final Set removeAdmins, + final boolean resetGroupLink, + final GroupLinkState groupLinkState, final File avatarFile ) throws IOException { Pair> result = null; @@ -989,6 +1000,16 @@ public class Manager implements Closeable { } } + if (resetGroupLink) { + var groupGroupChangePair = groupV2Helper.resetGroupLinkPassword(group); + result = sendUpdateGroupV2Message(group, groupGroupChangePair.first(), groupGroupChangePair.second()); + } + + if (groupLinkState != null) { + var groupGroupChangePair = groupV2Helper.setGroupLinkState(group, groupLinkState); + result = sendUpdateGroupV2Message(group, groupGroupChangePair.first(), groupGroupChangePair.second()); + } + if (result == null || name != null || description != null || avatarFile != null) { var groupGroupChangePair = groupV2Helper.updateGroup(group, name, description, avatarFile); if (avatarFile != null) {