From 344c0f6427748f00f8c3db79be2342252d767632 Mon Sep 17 00:00:00 2001 From: John Preston Date: Sat, 5 Apr 2025 10:12:32 +0400 Subject: [PATCH] Check phone access on join. --- Telegram/Resources/langs/lang.strings | 1 + .../SourceFiles/calls/group/calls_group_call.cpp | 4 ++-- .../SourceFiles/calls/group/calls_group_common.cpp | 5 +++-- .../window/window_session_controller.cpp | 14 ++++++++++++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 90b11ff4cf..2052b3f8b5 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -4957,6 +4957,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_confcall_invite_kicked_user" = "{user} was removed from the call."; "lng_confcall_invite_kicked_many#one" = "**{count} person** was removed from the call."; "lng_confcall_invite_kicked_many#other" = "**{count} people** were removed from the call."; +"lng_confcall_not_accessible" = "This call is no longer accessible."; "lng_no_mic_permission" = "Telegram needs microphone access so that you can make calls and record voice messages."; diff --git a/Telegram/SourceFiles/calls/group/calls_group_call.cpp b/Telegram/SourceFiles/calls/group/calls_group_call.cpp index bd0c703ccc..ce2d214f18 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_call.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_call.cpp @@ -1643,8 +1643,8 @@ void GroupCall::sendJoinRequest() { hangup(); Ui::Toast::Show((type == u"GROUPCALL_FORBIDDEN"_q) - ? tr::lng_group_not_accessible(tr::now) - : Lang::Hard::ServerError()); + ? tr::lng_confcall_not_accessible(tr::now) + : type); }).send(); } diff --git a/Telegram/SourceFiles/calls/group/calls_group_common.cpp b/Telegram/SourceFiles/calls/group/calls_group_common.cpp index b2e368513d..f0e09c6f03 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_common.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_common.cpp @@ -300,8 +300,9 @@ void ShowConferenceCallLinkBox( show->showToast({ .title = tr::lng_confcall_link_revoked_title( tr::now), - .text = tr::lng_confcall_link_revoked_text( - tr::now), + .text = { + tr::lng_confcall_link_revoked_text(tr::now), + }, }); }; ExportConferenceCallLink( diff --git a/Telegram/SourceFiles/window/window_session_controller.cpp b/Telegram/SourceFiles/window/window_session_controller.cpp index 3bb46a6a39..342313b3b6 100644 --- a/Telegram/SourceFiles/window/window_session_controller.cpp +++ b/Telegram/SourceFiles/window/window_session_controller.cpp @@ -876,7 +876,7 @@ void SessionNavigation::resolveConferenceCall( const auto slug = base::take(_conferenceCallSlug); const auto inviteMsgId = base::take(_conferenceCallInviteMsgId); const auto contextId = base::take(_conferenceCallResolveContextId); - result.data().vcall().match([&](const auto &data) { + result.data().vcall().match([&](const MTPDgroupCall &data) { const auto call = session().data().sharedConferenceCall( data.vid().v, data.vaccess_hash().v); @@ -897,12 +897,22 @@ void SessionNavigation::resolveConferenceCall( call, (inviter && !inviter->isSelf()) ? inviter : nullptr, join)); + }, [&](const MTPDgroupCallDiscarded &data) { + if (inviteMsgId) { + showToast(tr::lng_confcall_not_accessible(tr::now)); + } else { + showToast(tr::lng_confcall_link_inactive(tr::now)); + } }); }).fail([=] { _conferenceCallRequestId = 0; _conferenceCallSlug = QString(); _conferenceCallResolveContextId = FullMsgId(); - showToast(tr::lng_confcall_link_inactive(tr::now)); + if (base::take(_conferenceCallResolveContextId)) { + showToast(tr::lng_confcall_not_accessible(tr::now)); + } else { + showToast(tr::lng_confcall_link_inactive(tr::now)); + } }).send(); }