Ensure a GV2 update message mentioning you as a new member is first in the list.
This commit is contained in:
parent
ace1b8ee71
commit
3c90dfa660
2 changed files with 69 additions and 6 deletions
|
@ -148,13 +148,13 @@ final class GroupsV2UpdateMessageProducer {
|
||||||
|
|
||||||
if (editorIsYou) {
|
if (editorIsYou) {
|
||||||
if (newMemberIsYou) {
|
if (newMemberIsYou) {
|
||||||
updates.add(updateDescription(context.getString(R.string.MessageRecord_you_joined_the_group)));
|
updates.add(0, updateDescription(context.getString(R.string.MessageRecord_you_joined_the_group)));
|
||||||
} else {
|
} else {
|
||||||
updates.add(updateDescription(member.getUuid(), added -> context.getString(R.string.MessageRecord_you_added_s, added)));
|
updates.add(updateDescription(member.getUuid(), added -> context.getString(R.string.MessageRecord_you_added_s, added)));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (newMemberIsYou) {
|
if (newMemberIsYou) {
|
||||||
updates.add(updateDescription(change.getEditor(), editor -> context.getString(R.string.MessageRecord_s_added_you, editor)));
|
updates.add(0, updateDescription(change.getEditor(), editor -> context.getString(R.string.MessageRecord_s_added_you, editor)));
|
||||||
} else {
|
} else {
|
||||||
if (member.getUuid().equals(change.getEditor())) {
|
if (member.getUuid().equals(change.getEditor())) {
|
||||||
updates.add(updateDescription(member.getUuid(), newMember -> context.getString(R.string.MessageRecord_s_joined_the_group, newMember)));
|
updates.add(updateDescription(member.getUuid(), newMember -> context.getString(R.string.MessageRecord_s_joined_the_group, newMember)));
|
||||||
|
@ -171,7 +171,7 @@ final class GroupsV2UpdateMessageProducer {
|
||||||
boolean newMemberIsYou = member.getUuid().equals(selfUuidBytes);
|
boolean newMemberIsYou = member.getUuid().equals(selfUuidBytes);
|
||||||
|
|
||||||
if (newMemberIsYou) {
|
if (newMemberIsYou) {
|
||||||
updates.add(updateDescription(context.getString(R.string.MessageRecord_you_joined_the_group)));
|
updates.add(0, updateDescription(context.getString(R.string.MessageRecord_you_joined_the_group)));
|
||||||
} else {
|
} else {
|
||||||
updates.add(updateDescription(member.getUuid(), newMember -> context.getString(R.string.MessageRecord_s_joined_the_group, newMember)));
|
updates.add(updateDescription(member.getUuid(), newMember -> context.getString(R.string.MessageRecord_s_joined_the_group, newMember)));
|
||||||
}
|
}
|
||||||
|
@ -274,7 +274,7 @@ final class GroupsV2UpdateMessageProducer {
|
||||||
boolean newMemberIsYou = invitee.getUuid().equals(selfUuidBytes);
|
boolean newMemberIsYou = invitee.getUuid().equals(selfUuidBytes);
|
||||||
|
|
||||||
if (newMemberIsYou) {
|
if (newMemberIsYou) {
|
||||||
updates.add(updateDescription(change.getEditor(), editor -> context.getString(R.string.MessageRecord_s_invited_you_to_the_group, editor)));
|
updates.add(0, updateDescription(change.getEditor(), editor -> context.getString(R.string.MessageRecord_s_invited_you_to_the_group, editor)));
|
||||||
} else {
|
} else {
|
||||||
if (editorIsYou) {
|
if (editorIsYou) {
|
||||||
updates.add(updateDescription(invitee.getUuid(), newInvitee -> context.getString(R.string.MessageRecord_you_invited_s_to_the_group, newInvitee)));
|
updates.add(updateDescription(invitee.getUuid(), newInvitee -> context.getString(R.string.MessageRecord_you_invited_s_to_the_group, newInvitee)));
|
||||||
|
@ -300,9 +300,9 @@ final class GroupsV2UpdateMessageProducer {
|
||||||
UUID uuid = UuidUtil.fromByteStringOrUnknown(invitee.getAddedByUuid());
|
UUID uuid = UuidUtil.fromByteStringOrUnknown(invitee.getAddedByUuid());
|
||||||
|
|
||||||
if (UuidUtil.UNKNOWN_UUID.equals(uuid)) {
|
if (UuidUtil.UNKNOWN_UUID.equals(uuid)) {
|
||||||
updates.add(updateDescription(context.getString(R.string.MessageRecord_you_were_invited_to_the_group)));
|
updates.add(0, updateDescription(context.getString(R.string.MessageRecord_you_were_invited_to_the_group)));
|
||||||
} else {
|
} else {
|
||||||
updates.add(updateDescription(invitee.getAddedByUuid(), editor -> context.getString(R.string.MessageRecord_s_invited_you_to_the_group, editor)));
|
updates.add(0, updateDescription(invitee.getAddedByUuid(), editor -> context.getString(R.string.MessageRecord_s_invited_you_to_the_group, editor)));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
notYouInviteCount++;
|
notYouInviteCount++;
|
||||||
|
|
|
@ -182,6 +182,35 @@ public final class GroupsV2UpdateMessageProducerTest {
|
||||||
assertThat(describeChange(change), is(singletonList("Bob joined the group.")));
|
assertThat(describeChange(change), is(singletonList("Bob joined the group.")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void member_added_you_and_another_where_you_are_not_first() {
|
||||||
|
DecryptedGroupChange change = changeBy(bob)
|
||||||
|
.addMember(alice)
|
||||||
|
.addMember(you)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
assertThat(describeChange(change), is(Arrays.asList("Bob added you to the group.", "Bob added Alice.")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void unknown_member_added_you_and_another_where_you_are_not_first() {
|
||||||
|
DecryptedGroupChange change = changeByUnknown()
|
||||||
|
.addMember(alice)
|
||||||
|
.addMember(you)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
assertThat(describeChange(change), is(Arrays.asList("You joined the group.", "Alice joined the group.")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void you_added_you_and_another_where_you_are_not_first() {
|
||||||
|
DecryptedGroupChange change = changeBy(you)
|
||||||
|
.addMember(alice)
|
||||||
|
.addMember(you)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
assertThat(describeChange(change), is(Arrays.asList("You joined the group.", "You added Alice.")));
|
||||||
|
}
|
||||||
|
|
||||||
// Member removals
|
// Member removals
|
||||||
@Test
|
@Test
|
||||||
|
@ -451,6 +480,38 @@ public final class GroupsV2UpdateMessageProducerTest {
|
||||||
assertThat(describeChange(change), is(Arrays.asList("Bob invited you to the group.", "3 people were invited to the group.")));
|
assertThat(describeChange(change), is(Arrays.asList("Bob invited you to the group.", "3 people were invited to the group.")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void member_invited_3_persons_and_you_and_added_another_where_you_were_not_first() {
|
||||||
|
DecryptedGroupChange change = changeBy(bob)
|
||||||
|
.addMember(alice)
|
||||||
|
.invite(you)
|
||||||
|
.invite(UUID.randomUUID())
|
||||||
|
.invite(UUID.randomUUID())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
assertThat(describeChange(change), is(Arrays.asList("Bob invited you to the group.", "Bob added Alice.", "Bob invited 2 people to the group.")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void unknown_editor_but_known_invitee_invited_you_and_added_another_where_you_were_not_first() {
|
||||||
|
DecryptedGroupChange change = changeByUnknown()
|
||||||
|
.addMember(bob)
|
||||||
|
.inviteBy(you, alice)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
assertThat(describeChange(change), is(Arrays.asList("Alice invited you to the group.", "Bob joined the group.")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void unknown_editor_and_unknown_inviter_invited_you_and_added_another_where_you_were_not_first() {
|
||||||
|
DecryptedGroupChange change = changeByUnknown()
|
||||||
|
.addMember(alice)
|
||||||
|
.invite(you)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
assertThat(describeChange(change), is(Arrays.asList("You were invited to the group.", "Alice joined the group.")));
|
||||||
|
}
|
||||||
|
|
||||||
// Member invitation revocation
|
// Member invitation revocation
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -785,10 +846,12 @@ public final class GroupsV2UpdateMessageProducerTest {
|
||||||
.addMember(bob)
|
.addMember(bob)
|
||||||
.membershipAccess(AccessControl.AccessRequired.MEMBER)
|
.membershipAccess(AccessControl.AccessRequired.MEMBER)
|
||||||
.title("Title")
|
.title("Title")
|
||||||
|
.addMember(you)
|
||||||
.timer(300)
|
.timer(300)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
assertThat(describeChange(change), is(Arrays.asList(
|
assertThat(describeChange(change), is(Arrays.asList(
|
||||||
|
"Alice added you to the group.",
|
||||||
"Alice added Bob.",
|
"Alice added Bob.",
|
||||||
"Alice changed the group name to \"" + isolateBidi("Title") + "\".",
|
"Alice changed the group name to \"" + isolateBidi("Title") + "\".",
|
||||||
"Alice set the disappearing message timer to 5 minutes.",
|
"Alice set the disappearing message timer to 5 minutes.",
|
||||||
|
|
Loading…
Add table
Reference in a new issue