fix: HPB partial updates no longer drop the call when a participant joins#6087
Open
alauzon wants to merge 6 commits intonextcloud:masterfrom
Open
fix: HPB partial updates no longer drop the call when a participant joins#6087alauzon wants to merge 6 commits intonextcloud:masterfrom
alauzon wants to merge 6 commits intonextcloud:masterfrom
Conversation
Collaborator
|
thank you @alauzon we will have a closer look soon |
17cb72d to
db74191
Compare
…oins With external signaling (HPB), onParticipantsUpdate delivers partial updates containing only changed participants. The previous code treated both full lists (onUsersInRoom) and partial updates (onParticipantsUpdate) identically: any participant absent from the list was moved to the "left" collection. When a new participant joined via HPB, the local user was not included in the partial update. This caused the local participant to appear in "left", which made CallActivity think a moderator had ended the call for everyone and trigger hangup(). Fix: processParticipantList now takes a boolean fullList parameter. - onUsersInRoom passes fullList=true: absent participants have left (unchanged) - onParticipantsUpdate passes fullList=false: absent participants are still in the call and are moved to "unchanged" instead of "left" Fixes nextcloud#5452 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Alain Lauzon <alauzon@alainlauzon.com>
db74191 to
481ed68
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #5452
Problem
With external signaling (HPB),
onParticipantsUpdatedelivers partial updates containing only changed participants. The previous code treated bothonUsersInRoom(full list) andonParticipantsUpdate(partial update) identically: any participant absent from the list was moved to theleftcollection.When a new participant joined via HPB, the local user was not included in the partial update (because the local user didn't change). This caused the local participant to appear in
left, which madeCallActivity.handleCallParticipantsChangedconclude:The call was dropped by the Android client as soon as another participant joined.
Fix
processParticipantListnow takes aboolean fullListparameter:onUsersInRoompassesfullList=true— absent participants have left (original behaviour)onParticipantsUpdatepassesfullList=false— absent participants are still in the call and are moved tounchangedinstead oflefthandleCallParticipantsChangedbuildsparticipantsInCallfromjoined + updated + unchanged, so the local user stays present,isSelfInCallremainstrue, and the call is not dropped.