mirror of
https://github.com/AsamK/signal-cli.git
synced 2026-09-21 06:19:41 +00:00
Fix updateGroup --admin and --remove-member silent failures (#1970)
Fix type mismatch in retainAll() calls that cause updateGroup --admin and --remove-member to silently do nothing. retainAll() compared Set<RecipientId> against Collection<GroupMemberInfo>, which always evaluates to false (different types), emptying the set. Replace group.getMembers() with group.getMemberRecipientIds() in all three affected locations. Fixes: updateGroup --admin silently failing to promote members Fixes: updateGroup --remove-member silently failing to remove members Co-authored-by: joey <joey@Mac-Studio.local>
This commit is contained in:
parent
7d89375d3a
commit
313f5392ef
@ -739,7 +739,7 @@ public class GroupHelper {
|
|||||||
if (banMembers != null) {
|
if (banMembers != null) {
|
||||||
existingRemoveMembers.addAll(banMembers);
|
existingRemoveMembers.addAll(banMembers);
|
||||||
}
|
}
|
||||||
existingRemoveMembers.retainAll(group.getMembers());
|
existingRemoveMembers.retainAll(group.getMemberRecipientIds());
|
||||||
if (members != null) {
|
if (members != null) {
|
||||||
existingRemoveMembers.removeAll(members);
|
existingRemoveMembers.removeAll(members);
|
||||||
}
|
}
|
||||||
@ -765,7 +765,7 @@ public class GroupHelper {
|
|||||||
|
|
||||||
if (admins != null) {
|
if (admins != null) {
|
||||||
final var newAdmins = new HashSet<>(admins);
|
final var newAdmins = new HashSet<>(admins);
|
||||||
newAdmins.retainAll(group.getMembers());
|
newAdmins.retainAll(group.getMemberRecipientIds());
|
||||||
newAdmins.removeAll(group.getAdminMemberRecipientIds());
|
newAdmins.removeAll(group.getAdminMemberRecipientIds());
|
||||||
if (!newAdmins.isEmpty()) {
|
if (!newAdmins.isEmpty()) {
|
||||||
for (var admin : newAdmins) {
|
for (var admin : newAdmins) {
|
||||||
@ -878,7 +878,7 @@ public class GroupHelper {
|
|||||||
) throws LastGroupAdminException, IOException {
|
) throws LastGroupAdminException, IOException {
|
||||||
final var currentAdmins = groupInfoV2.getAdminMemberRecipientIds();
|
final var currentAdmins = groupInfoV2.getAdminMemberRecipientIds();
|
||||||
newAdmins.removeAll(currentAdmins);
|
newAdmins.removeAll(currentAdmins);
|
||||||
newAdmins.retainAll(groupInfoV2.getMembers());
|
newAdmins.retainAll(groupInfoV2.getMemberRecipientIds());
|
||||||
if (currentAdmins.contains(account.getSelfRecipientId())
|
if (currentAdmins.contains(account.getSelfRecipientId())
|
||||||
&& currentAdmins.size() == 1
|
&& currentAdmins.size() == 1
|
||||||
&& groupInfoV2.getMembers().size() > 1
|
&& groupInfoV2.getMembers().size() > 1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user