diff --git a/Telegram/SourceFiles/calls/calls_instance.cpp b/Telegram/SourceFiles/calls/calls_instance.cpp index 1181c8152e..d79a317018 100644 --- a/Telegram/SourceFiles/calls/calls_instance.cpp +++ b/Telegram/SourceFiles/calls/calls_instance.cpp @@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/application.h" #include "core/core_settings.h" #include "main/session/session_show.h" +#include "main/main_app_config.h" #include "main/main_session.h" #include "main/main_account.h" #include "apiwrap.h" @@ -1090,7 +1091,8 @@ void Instance::showConferenceInvite( const auto video = call->video; if (!conferenceId || call->state != Data::CallState::Invitation - || user->isSelf()) { + || user->isSelf() + || user->session().appConfig().callsDisabledForSession()) { return; } else if (_currentCall && _currentCall->conferenceId() == conferenceId) { diff --git a/Telegram/SourceFiles/main/main_app_config.cpp b/Telegram/SourceFiles/main/main_app_config.cpp index 82fb147939..941441c3c6 100644 --- a/Telegram/SourceFiles/main/main_app_config.cpp +++ b/Telegram/SourceFiles/main/main_app_config.cpp @@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "main/main_app_config.h" +#include "api/api_authorizations.h" #include "apiwrap.h" #include "base/call_delayed.h" #include "main/main_account.h" @@ -108,6 +109,15 @@ int AppConfig::pinnedGiftsLimit() const { return get(u"stargifts_pinned_to_top_limit"_q, 6); } +bool AppConfig::callsDisabledForSession() const { + const auto authorizations = _account->sessionExists() + ? &_account->session().api().authorizations() + : nullptr; + return get( + u"call_requests_disabled"_q, + authorizations->callsDisabledHere()); +} + int AppConfig::confcallSizeLimit() const { return get( u"conference_call_size_limit"_q, @@ -314,8 +324,9 @@ bool AppConfig::suggestionCurrent(const QString &key) const { if (_dismissedSuggestions.contains(key)) { return false; } else { - const auto known - = _account->session().data().knownContactBirthdays(); + const auto known = _account->sessionExists() + ? _account->session().data().knownContactBirthdays() + : std::vector(); if (!known) { return true; } diff --git a/Telegram/SourceFiles/main/main_app_config.h b/Telegram/SourceFiles/main/main_app_config.h index eac50671e0..72a4e69c97 100644 --- a/Telegram/SourceFiles/main/main_app_config.h +++ b/Telegram/SourceFiles/main/main_app_config.h @@ -79,6 +79,7 @@ public: [[nodiscard]] int pinnedGiftsLimit() const; + [[nodiscard]] bool callsDisabledForSession() const; [[nodiscard]] int confcallSizeLimit() const; [[nodiscard]] bool confcallPrioritizeVP8() const;