fix: HPB partial updates no longer drop the call when a participant joins#6087
fix: HPB partial updates no longer drop the call when a participant joins#6087alauzon wants to merge 6 commits intonextcloud:masterfrom
Conversation
|
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
|
Please excuse the current delays in pull request reviews. |
|
Hello there, We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process. Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6 Thank you for contributing to Nextcloud and we hope to hear from you soon! (If you believe you should not receive this message, you can add yourself to the blocklist.) |
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.