Fixed local applying of mute participant state in group calls.

This commit is contained in:
23rd 2021-01-28 03:52:53 +03:00
parent 85b3672bc8
commit 037506c0b7
2 changed files with 8 additions and 3 deletions

View file

@ -411,8 +411,11 @@ void GroupCall::applyParticipantLocally(
const auto flags = (canSelfUnmute ? Flag::f_can_self_unmute : Flag(0))
| (volume.has_value() ? Flag::f_volume : Flag(0))
| (participant->lastActive ? Flag::f_active_date : Flag(0))
| (mute ? Flag::f_muted : Flag(0))
| (participant->mutedByMe ? Flag::f_muted_by_you : Flag(0));
| (!mute
? Flag(0)
: user->canManageGroupCall()
? Flag::f_muted
: Flag::f_muted_by_you);
_peer->groupCall()->applyUpdateChecked(
MTP_updateGroupCallParticipants(
inputCall(),

View file

@ -394,7 +394,9 @@ void Row::setSpeaking(bool speaking) {
_speaking ? 1. : 0.,
st::widgetFadeDuration);
if (!_speaking || (_state == State::MutedByMe)) {
if (!_speaking
|| (_state == State::MutedByMe)
|| (_state == State::Muted)) {
_statusIcon = nullptr;
} else if (!_statusIcon) {
_statusIcon = std::make_unique<StatusIcon>(