Fix invalid 'You can speak' notification.

This commit is contained in:
John Preston 2021-03-16 19:01:56 +04:00
parent 38dd5ab837
commit 2e9d6d73c3

View file

@ -890,18 +890,22 @@ void GroupCall::handleUpdate(const MTPDupdateGroupCallParticipants &data) {
handleOtherParticipants(data); handleOtherParticipants(data);
return; return;
} }
if (data.is_left() && data.vsource().v == _mySsrc) { if (data.is_left()) {
// I was removed from the call, rejoin. if (data.vsource().v == _mySsrc) {
LOG(("Call Info: Rejoin after got 'left' with my ssrc.")); // I was removed from the call, rejoin.
setState(State::Joining); LOG(("Call Info: Rejoin after got 'left' with my ssrc."));
rejoin(); setState(State::Joining);
} else if (!data.is_left() && data.vsource().v != _mySsrc) { rejoin();
}
return;
} else if (data.vsource().v != _mySsrc) {
// I joined from another device, hangup. // I joined from another device, hangup.
LOG(("Call Info: Hangup after '!left' with ssrc %1, my %2." LOG(("Call Info: Hangup after '!left' with ssrc %1, my %2."
).arg(data.vsource().v ).arg(data.vsource().v
).arg(_mySsrc)); ).arg(_mySsrc));
_mySsrc = 0; _mySsrc = 0;
hangup(); hangup();
return;
} }
if (data.is_muted() && !data.is_can_self_unmute()) { if (data.is_muted() && !data.is_can_self_unmute()) {
setMuted(data.vraise_hand_rating().value_or_empty() setMuted(data.vraise_hand_rating().value_or_empty()