diff --git a/Telegram/SourceFiles/boxes/create_poll_box.cpp b/Telegram/SourceFiles/boxes/create_poll_box.cpp index fab9731cc8..926656d8b6 100644 --- a/Telegram/SourceFiles/boxes/create_poll_box.cpp +++ b/Telegram/SourceFiles/boxes/create_poll_box.cpp @@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/stickers/data_custom_emoji.h" #include "history/view/history_view_schedule_box.h" #include "lang/lang_keys.h" +#include "main/main_app_config.h" #include "main/main_session.h" #include "menu/menu_send.h" #include "ui/controls/emoji_button.h" @@ -510,7 +511,8 @@ Options::Options( } bool Options::full() const { - return (_list.size() == kMaxOptionsCount); + const auto limit = _controller->session().appConfig().pollOptionsLimit(); + return (_list.size() >= limit); } bool Options::hasOptions() const { @@ -1028,8 +1030,10 @@ object_ptr CreatePollBox::setupContent() { setCloseByEscape(!count); setCloseByOutsideClick(!count); }) | rpl::map([=](int count) { - return (count < kMaxOptionsCount) - ? tr::lng_polls_create_limit(tr::now, lt_count, kMaxOptionsCount - count) + const auto appConfig = &_controller->session().appConfig(); + const auto max = appConfig->pollOptionsLimit(); + return (count < max) + ? tr::lng_polls_create_limit(tr::now, lt_count, max - count) : tr::lng_polls_create_maximum(tr::now); }) | rpl::after_next([=] { container->resizeToWidth(container->widthNoMargins()); diff --git a/Telegram/SourceFiles/data/data_poll.h b/Telegram/SourceFiles/data/data_poll.h index 49dd021734..03fadc862c 100644 --- a/Telegram/SourceFiles/data/data_poll.h +++ b/Telegram/SourceFiles/data/data_poll.h @@ -75,7 +75,7 @@ struct PollData { int totalVoters = 0; int version = 0; - static constexpr auto kMaxOptions = 10; + static constexpr auto kMaxOptions = 32; private: bool applyResultToAnswers( diff --git a/Telegram/SourceFiles/main/main_app_config.cpp b/Telegram/SourceFiles/main/main_app_config.cpp index f5ace98778..5c4a5b02cd 100644 --- a/Telegram/SourceFiles/main/main_app_config.cpp +++ b/Telegram/SourceFiles/main/main_app_config.cpp @@ -140,6 +140,12 @@ int AppConfig::giftResaleReceiveThousandths() const { return get(u"stars_stargift_resale_commission_permille"_q, 800); } +int AppConfig::pollOptionsLimit() const { + return get( + u"poll_answers_max"_q, + _account->mtp().isTestMode() ? 12 : 10); +} + void AppConfig::refresh(bool force) { if (_requestId || !_api) { if (force) { diff --git a/Telegram/SourceFiles/main/main_app_config.h b/Telegram/SourceFiles/main/main_app_config.h index dbf26522cf..0fa0e3c495 100644 --- a/Telegram/SourceFiles/main/main_app_config.h +++ b/Telegram/SourceFiles/main/main_app_config.h @@ -82,6 +82,8 @@ public: [[nodiscard]] int giftResalePriceMin() const; [[nodiscard]] int giftResaleReceiveThousandths() const; + [[nodiscard]] int pollOptionsLimit() const; + void refresh(bool force = false); private: