Add missing handler for group request join/cancel update.

Co-authored-by: Greyson Parrelli <greyson@signal.org>
This commit is contained in:
Cody Henthorne
2026-05-29 12:28:42 -04:00
committed by Michelle Tang
parent fa8098a9aa
commit fe435433fd
2 changed files with 16 additions and 1 deletions
@@ -784,7 +784,7 @@ public final class ConversationUpdateItem extends FrameLayout
return false;
}
return (messageRecord.isCollapsedGroupV2JoinUpdate() && !nextMessageRecord.map(m -> m.isGroupV2JoinRequest(toBlock.requireServiceId())).orElse(false)) ||
return (messageRecord.isCollapsedGroupV2JoinUpdate(toBlock.requireServiceId()) && !nextMessageRecord.map(m -> m.isGroupV2JoinRequest(toBlock.requireServiceId())).orElse(false)) ||
(messageRecord.isGroupV2JoinRequest(toBlock.requireServiceId()) && previousMessageRecord.map(m -> m.isCollapsedGroupV2JoinUpdate(toBlock.requireServiceId())).orElse(false));
}
@@ -54,6 +54,7 @@ import org.signal.archive.proto.GroupMemberRemovedUpdate;
import org.signal.archive.proto.GroupMembershipAccessLevelChangeUpdate;
import org.signal.archive.proto.GroupNameUpdate;
import org.signal.archive.proto.GroupSelfInvitationRevokedUpdate;
import org.signal.archive.proto.GroupSequenceOfRequestsAndCancelsUpdate;
import org.signal.archive.proto.GroupTerminateChangeUpdate;
import org.signal.archive.proto.GroupUnknownInviteeUpdate;
import org.signal.archive.proto.GroupV2AccessLevel;
@@ -199,6 +200,8 @@ final class GroupsV2UpdateMessageProducer {
describeGroupJoinRequestApprovedUpdate(update.groupJoinRequestApprovalUpdate, updates);
} else if (update.groupJoinRequestCanceledUpdate != null) {
describeGroupJoinRequestCanceledUpdate(update.groupJoinRequestCanceledUpdate, updates);
} else if (update.groupSequenceOfRequestsAndCancelsUpdate != null) {
describeGroupSequenceOfRequestsAndCancelsUpdate(update.groupSequenceOfRequestsAndCancelsUpdate, updates);
} else if (update.groupInviteLinkResetUpdate != null) {
describeInviteLinkResetUpdate(update.groupInviteLinkResetUpdate, updates);
} else if (update.groupInviteLinkEnabledUpdate != null) {
@@ -378,6 +381,18 @@ final class GroupsV2UpdateMessageProducer {
}
}
private void describeGroupSequenceOfRequestsAndCancelsUpdate(@NonNull GroupSequenceOfRequestsAndCancelsUpdate update, @NonNull List<UpdateDescription> updates) {
if (selfIds.matches(update.requestorAci)) {
updates.add(updateDescription(context.getString(R.string.MessageRecord_you_canceled_your_request_to_join_the_group), Glyph.GROUP));
} else {
updates.add(updateDescription(R.plurals.MessageRecord_s_requested_and_cancelled_their_request_to_join_via_the_group_link,
update.count,
update.requestorAci,
update.count,
Glyph.GROUP));
}
}
private void describeGroupJoinRequestApprovedUpdate(@NonNull GroupJoinRequestApprovalUpdate update, @NonNull List<UpdateDescription> updates) {
boolean requestingMemberIsYou = selfIds.matches(update.requestorAci);