From 703b21b4e5f0c7b73eea9f1f34c9fa6f2da025b4 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 15 Dec 2020 14:49:31 +0400 Subject: [PATCH] Leave voice chat without confirmation. --- Telegram/SourceFiles/calls/calls_group_panel.cpp | 9 ++++++--- Telegram/SourceFiles/calls/calls_group_panel.h | 2 +- Telegram/SourceFiles/calls/calls_top_bar.cpp | 14 +++++++++----- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls_group_panel.cpp b/Telegram/SourceFiles/calls/calls_group_panel.cpp index 651e23edc8..8b139398e1 100644 --- a/Telegram/SourceFiles/calls/calls_group_panel.cpp +++ b/Telegram/SourceFiles/calls/calls_group_panel.cpp @@ -315,14 +315,17 @@ void GroupPanel::initWidget() { }, widget()->lifetime()); } -void GroupPanel::hangup(bool discardCallChecked) { +void GroupPanel::endCall() { if (!_call) { return; + } else if (!_call->peer()->canManageGroupCall()) { + _call->hangup(); + return; } _layerBg->showBox(Box( LeaveGroupCallBox, _call, - discardCallChecked, + false, BoxContext::GroupCallPanel)); } @@ -338,7 +341,7 @@ void GroupPanel::initControls() { : MuteState::Muted); }, _mute->lifetime()); - _hangup->setClickedCallback([=] { hangup(false); }); + _hangup->setClickedCallback([=] { endCall(); }); _settings->setClickedCallback([=] { if (_call) { _layerBg->showBox(Box(GroupCallSettingsBox, _call)); diff --git a/Telegram/SourceFiles/calls/calls_group_panel.h b/Telegram/SourceFiles/calls/calls_group_panel.h index 7716ca190e..154bca7c13 100644 --- a/Telegram/SourceFiles/calls/calls_group_panel.h +++ b/Telegram/SourceFiles/calls/calls_group_panel.h @@ -90,7 +90,7 @@ private: void updateControlsGeometry(); void showControls(); - void hangup(bool discardCallChecked); + void endCall(); void addMembers(); void kickMember(not_null user); diff --git a/Telegram/SourceFiles/calls/calls_top_bar.cpp b/Telegram/SourceFiles/calls/calls_top_bar.cpp index eb7d2e2ded..c9527d23fd 100644 --- a/Telegram/SourceFiles/calls/calls_top_bar.cpp +++ b/Telegram/SourceFiles/calls/calls_top_bar.cpp @@ -337,11 +337,15 @@ void TopBar::initControls() { if (const auto call = _call.get()) { call->hangup(); } else if (const auto group = _groupCall.get()) { - Ui::show(Box( - LeaveGroupCallBox, - group, - false, - BoxContext::MainWindow)); + if (!group->peer()->canManageGroupCall()) { + group->hangup(); + } else { + Ui::show(Box( + LeaveGroupCallBox, + group, + false, + BoxContext::MainWindow)); + } } }); updateDurationText();