From 935c831a7fe72085aac48b0328c7ab6340459aee Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Wed, 9 Sep 2020 12:16:09 -0300 Subject: [PATCH] Fix equality comparison causing blank updates and "The group was updated" messages. --- .../api/groupsv2/GroupChangeReconstruct.java | 2 +- .../api/groupsv2/GroupChangeReconstructTest.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/groupsv2/GroupChangeReconstruct.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/groupsv2/GroupChangeReconstruct.java index 166b6bd31..8eb43e060 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/groupsv2/GroupChangeReconstruct.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/groupsv2/GroupChangeReconstruct.java @@ -106,7 +106,7 @@ public final class GroupChangeReconstruct { .setRole(newState.getRole())); } - if (oldState.getProfileKey() != newState.getProfileKey()) { + if (!oldState.getProfileKey().equals(newState.getProfileKey())) { builder.addModifiedProfileKeys(newState); } } diff --git a/libsignal/service/src/test/java/org/whispersystems/signalservice/api/groupsv2/GroupChangeReconstructTest.java b/libsignal/service/src/test/java/org/whispersystems/signalservice/api/groupsv2/GroupChangeReconstructTest.java index 16abf4e30..f22edb093 100644 --- a/libsignal/service/src/test/java/org/whispersystems/signalservice/api/groupsv2/GroupChangeReconstructTest.java +++ b/libsignal/service/src/test/java/org/whispersystems/signalservice/api/groupsv2/GroupChangeReconstructTest.java @@ -208,9 +208,10 @@ public final class GroupChangeReconstructTest { @Test public void to_admin() { - UUID uuid = UUID.randomUUID(); - DecryptedGroup from = DecryptedGroup.newBuilder().addMembers(member(uuid)).build(); - DecryptedGroup to = DecryptedGroup.newBuilder().addMembers(admin(uuid)).build(); + UUID uuid = UUID.randomUUID(); + ProfileKey profileKey = randomProfileKey(); + DecryptedGroup from = DecryptedGroup.newBuilder().addMembers(withProfileKey(member(uuid), profileKey)).build(); + DecryptedGroup to = DecryptedGroup.newBuilder().addMembers(withProfileKey(admin(uuid), profileKey)).build(); DecryptedGroupChange decryptedGroupChange = GroupChangeReconstruct.reconstructGroupChange(from, to); @@ -219,9 +220,10 @@ public final class GroupChangeReconstructTest { @Test public void to_member() { - UUID uuid = UUID.randomUUID(); - DecryptedGroup from = DecryptedGroup.newBuilder().addMembers(admin(uuid)).build(); - DecryptedGroup to = DecryptedGroup.newBuilder().addMembers(member(uuid)).build(); + UUID uuid = UUID.randomUUID(); + ProfileKey profileKey = randomProfileKey(); + DecryptedGroup from = DecryptedGroup.newBuilder().addMembers(withProfileKey(admin(uuid), profileKey)).build(); + DecryptedGroup to = DecryptedGroup.newBuilder().addMembers(withProfileKey(member(uuid), profileKey)).build(); DecryptedGroupChange decryptedGroupChange = GroupChangeReconstruct.reconstructGroupChange(from, to);