Add session->appConfig() shortcut.

This commit is contained in:
John Preston 2024-03-29 15:30:50 +04:00
parent 3b5814edae
commit da7a796edb
35 changed files with 98 additions and 115 deletions

View file

@ -9,7 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h" #include "apiwrap.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
namespace Api { namespace Api {
@ -40,9 +39,9 @@ void GlobalPrivacy::reload(Fn<void()> callback) {
} }
}).send(); }).send();
_session->account().appConfig().value( _session->appConfig().value(
) | rpl::start_with_next([=] { ) | rpl::start_with_next([=] {
_showArchiveAndMute = _session->account().appConfig().get<bool>( _showArchiveAndMute = _session->appConfig().get<bool>(
u"autoarchive_setting_available"_q, u"autoarchive_setting_available"_q,
false); false);
}, _session->lifetime()); }, _session->lifetime());
@ -75,12 +74,12 @@ rpl::producer<bool> GlobalPrivacy::showArchiveAndMute() const {
} }
rpl::producer<> GlobalPrivacy::suggestArchiveAndMute() const { rpl::producer<> GlobalPrivacy::suggestArchiveAndMute() const {
return _session->account().appConfig().suggestionRequested( return _session->appConfig().suggestionRequested(
u"AUTOARCHIVE_POPULAR"_q); u"AUTOARCHIVE_POPULAR"_q);
} }
void GlobalPrivacy::dismissArchiveAndMuteSuggestion() { void GlobalPrivacy::dismissArchiveAndMuteSuggestion() {
_session->account().appConfig().dismissSuggestion( _session->appConfig().dismissSuggestion(
u"AUTOARCHIVE_POPULAR"_q); u"AUTOARCHIVE_POPULAR"_q);
} }

View file

@ -19,7 +19,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "history/view/history_view_element.h" #include "history/view/history_view_element.h"
#include "history/history.h" #include "history/history.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "payments/payments_form.h" #include "payments/payments_form.h"
@ -571,34 +570,34 @@ Data::SubscriptionOptions PremiumGiftCodeOptions::options(int amount) {
int PremiumGiftCodeOptions::giveawayBoostsPerPremium() const { int PremiumGiftCodeOptions::giveawayBoostsPerPremium() const {
constexpr auto kFallbackCount = 4; constexpr auto kFallbackCount = 4;
return _peer->session().account().appConfig().get<int>( return _peer->session().appConfig().get<int>(
u"giveaway_boosts_per_premium"_q, u"giveaway_boosts_per_premium"_q,
kFallbackCount); kFallbackCount);
} }
int PremiumGiftCodeOptions::giveawayCountriesMax() const { int PremiumGiftCodeOptions::giveawayCountriesMax() const {
constexpr auto kFallbackCount = 10; constexpr auto kFallbackCount = 10;
return _peer->session().account().appConfig().get<int>( return _peer->session().appConfig().get<int>(
u"giveaway_countries_max"_q, u"giveaway_countries_max"_q,
kFallbackCount); kFallbackCount);
} }
int PremiumGiftCodeOptions::giveawayAddPeersMax() const { int PremiumGiftCodeOptions::giveawayAddPeersMax() const {
constexpr auto kFallbackCount = 10; constexpr auto kFallbackCount = 10;
return _peer->session().account().appConfig().get<int>( return _peer->session().appConfig().get<int>(
u"giveaway_add_peers_max"_q, u"giveaway_add_peers_max"_q,
kFallbackCount); kFallbackCount);
} }
int PremiumGiftCodeOptions::giveawayPeriodMax() const { int PremiumGiftCodeOptions::giveawayPeriodMax() const {
constexpr auto kFallbackCount = 3600 * 24 * 7; constexpr auto kFallbackCount = 3600 * 24 * 7;
return _peer->session().account().appConfig().get<int>( return _peer->session().appConfig().get<int>(
u"giveaway_period_max"_q, u"giveaway_period_max"_q,
kFallbackCount); kFallbackCount);
} }
bool PremiumGiftCodeOptions::giveawayGiftsPurchaseAvailable() const { bool PremiumGiftCodeOptions::giveawayGiftsPurchaseAvailable() const {
return _peer->session().account().appConfig().get<bool>( return _peer->session().appConfig().get<bool>(
u"giveaway_gifts_purchase_available"_q, u"giveaway_gifts_purchase_available"_q,
false); false);
} }

View file

@ -16,7 +16,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_file_origin.h" #include "data/data_file_origin.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "data/notify/data_notify_settings.h" #include "data/notify/data_notify_settings.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "storage/file_upload.h" #include "storage/file_upload.h"
@ -191,20 +190,20 @@ void Ringtones::remove(DocumentId id) {
} }
int64 Ringtones::maxSize() const { int64 Ringtones::maxSize() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
"ringtone_size_max", u"ringtone_size_max"_q,
100 * 1024); 100 * 1024);
} }
int Ringtones::maxSavedCount() const { int Ringtones::maxSavedCount() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
"ringtone_saved_count_max", u"ringtone_saved_count_max"_q,
100); 100);
} }
crl::time Ringtones::maxDuration() const { crl::time Ringtones::maxDuration() const {
return crl::time(1000) * _session->account().appConfig().get<int>( return crl::time(1000) * _session->appConfig().get<int>(
"ringtone_duration_max", u"ringtone_duration_max"_q,
5); 5);
} }

View file

@ -28,7 +28,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/text/text_entity.h" // TextWithEntities. #include "ui/text/text_entity.h" // TextWithEntities.
#include "ui/item_text_options.h" // Ui::ItemTextOptions. #include "ui/item_text_options.h" // Ui::ItemTextOptions.
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "storage/localimageloader.h" #include "storage/localimageloader.h"
#include "storage/file_upload.h" #include "storage/file_upload.h"
@ -239,8 +238,7 @@ bool SendDice(MessageToSend &message) {
|| !message.textWithTags.tags.isEmpty()) { || !message.textWithTags.tags.isEmpty()) {
return false; return false;
} }
auto &account = message.action.history->session().account(); auto &config = message.action.history->session().appConfig();
auto &config = account.appConfig();
static const auto hardcoded = std::vector<QString>{ static const auto hardcoded = std::vector<QString>{
Stickers::DicePacks::kDiceString, Stickers::DicePacks::kDiceString,
Stickers::DicePacks::kDartString, Stickers::DicePacks::kDartString,

View file

@ -9,7 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h" #include "apiwrap.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
namespace Api { namespace Api {
@ -22,7 +21,7 @@ constexpr auto kRefreshAppConfigTimeout = 3 * crl::time(1000);
SensitiveContent::SensitiveContent(not_null<ApiWrap*> api) SensitiveContent::SensitiveContent(not_null<ApiWrap*> api)
: _session(&api->session()) : _session(&api->session())
, _api(&api->instance()) , _api(&api->instance())
, _appConfigReloadTimer([=] { _session->account().appConfig().refresh(); }) { , _appConfigReloadTimer([=] { _session->appConfig().refresh(); }) {
} }
void SensitiveContent::reload() { void SensitiveContent::reload() {

View file

@ -15,7 +15,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "history/history.h" #include "history/history.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "history/history_item_helpers.h" #include "history/history_item_helpers.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
@ -36,10 +35,10 @@ bool Transcribes::freeFor(not_null<HistoryItem*> item) const {
bool Transcribes::trialsSupport() { bool Transcribes::trialsSupport() {
if (!_trialsSupport) { if (!_trialsSupport) {
const auto count = _session->account().appConfig().get<int>( const auto count = _session->appConfig().get<int>(
u"transcribe_audio_trial_weekly_number"_q, u"transcribe_audio_trial_weekly_number"_q,
0); 0);
const auto until = _session->account().appConfig().get<int>( const auto until = _session->appConfig().get<int>(
u"transcribe_audio_trial_cooldown_until"_q, u"transcribe_audio_trial_cooldown_until"_q,
0); 0);
_trialsSupport = (count > 0) || (until > 0); _trialsSupport = (count > 0) || (until > 0);
@ -49,7 +48,7 @@ bool Transcribes::trialsSupport() {
TimeId Transcribes::trialsRefreshAt() { TimeId Transcribes::trialsRefreshAt() {
if (_trialsRefreshAt < 0) { if (_trialsRefreshAt < 0) {
_trialsRefreshAt = _session->account().appConfig().get<int>( _trialsRefreshAt = _session->appConfig().get<int>(
u"transcribe_audio_trial_cooldown_until"_q, u"transcribe_audio_trial_cooldown_until"_q,
0); 0);
} }
@ -58,7 +57,7 @@ TimeId Transcribes::trialsRefreshAt() {
int Transcribes::trialsCount() { int Transcribes::trialsCount() {
if (_trialsCount < 0) { if (_trialsCount < 0) {
_trialsCount = _session->account().appConfig().get<int>( _trialsCount = _session->appConfig().get<int>(
u"transcribe_audio_trial_weekly_number"_q, u"transcribe_audio_trial_weekly_number"_q,
-1); -1);
return std::max(_trialsCount, 0); return std::max(_trialsCount, 0);
@ -67,7 +66,7 @@ int Transcribes::trialsCount() {
} }
crl::time Transcribes::trialsMaxLengthMs() const { crl::time Transcribes::trialsMaxLengthMs() const {
return 1000 * _session->account().appConfig().get<int>( return 1000 * _session->appConfig().get<int>(
u"transcribe_audio_trial_duration_max"_q, u"transcribe_audio_trial_duration_max"_q,
300); 300);
} }

View file

@ -24,7 +24,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_account.h"
#include "base/unixtime.h" #include "base/unixtime.h"
#include "base/weak_ptr.h" #include "base/weak_ptr.h"
#include "ui/controls/who_reacted_context_action.h" #include "ui/controls/who_reacted_context_action.h"
@ -697,7 +696,7 @@ bool WhoReadExists(not_null<HistoryItem*> item) {
|| user->readDatesPrivate()) { || user->readDatesPrivate()) {
return false; return false;
} }
const auto &appConfig = peer->session().account().appConfig(); const auto &appConfig = peer->session().appConfig();
const auto expirePeriod = appConfig.get<int>( const auto expirePeriod = appConfig.get<int>(
"pm_read_date_expire_period", "pm_read_date_expire_period",
7 * 86400); 7 * 86400);
@ -713,7 +712,7 @@ bool WhoReadExists(not_null<HistoryItem*> item) {
&& (megagroup->flags() & ChannelDataFlag::ParticipantsHidden))) { && (megagroup->flags() & ChannelDataFlag::ParticipantsHidden))) {
return false; return false;
} }
const auto &appConfig = peer->session().account().appConfig(); const auto &appConfig = peer->session().appConfig();
const auto expirePeriod = appConfig.get<int>( const auto expirePeriod = appConfig.get<int>(
"chat_read_mark_expire_period", "chat_read_mark_expire_period",
7 * 86400); 7 * 86400);

View file

@ -15,7 +15,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/widgets/buttons.h" #include "ui/widgets/buttons.h"
#include "ui/vertical_list.h" #include "ui/vertical_list.h"
#include "settings/settings_common.h" // IconDescriptor. #include "settings/settings_common.h" // IconDescriptor.
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "apiwrap.h" #include "apiwrap.h"
@ -26,7 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
namespace { namespace {
[[nodiscard]] int EnableHideMembersMin(not_null<ChannelData*> channel) { [[nodiscard]] int EnableHideMembersMin(not_null<ChannelData*> channel) {
return channel->session().account().appConfig().get<int>( return channel->session().appConfig().get<int>(
u"hidden_members_group_size_min"_q, u"hidden_members_group_size_min"_q,
100); 100);
} }

View file

@ -44,7 +44,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "info/info_memento.h" #include "info/info_memento.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "mtproto/sender.h" #include "mtproto/sender.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "settings/settings_common.h" #include "settings/settings_common.h"
#include "ui/boxes/boost_box.h" #include "ui/boxes/boost_box.h"
@ -78,7 +77,7 @@ constexpr auto kBotManagerUsername = "BotFather"_cs;
} }
[[nodiscard]] int EnableForumMinMembers(not_null<PeerData*> peer) { [[nodiscard]] int EnableForumMinMembers(not_null<PeerData*> peer) {
return peer->session().account().appConfig().get<int>( return peer->session().appConfig().get<int>(
u"forum_upgrade_participants_min"_q, u"forum_upgrade_participants_min"_q,
200); 200);
} }

View file

@ -17,7 +17,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_cloud_themes.h" #include "data/data_cloud_themes.h"
#include "data/data_session.h" #include "data/data_session.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/session/session_show.h" #include "main/session/session_show.h"
@ -464,8 +463,7 @@ Ui::BoostFeatures LookupBoostFeatures(not_null<ChannelData*> channel) {
} }
int BoostsForGift(not_null<Main::Session*> session) { int BoostsForGift(not_null<Main::Session*> session) {
const auto key = u"boosts_per_sent_gift"_q; return session->appConfig().get<int>(u"boosts_per_sent_gift"_q, 0);
return session->account().appConfig().get<int>(key, 0);
} }
struct Sources { struct Sources {

View file

@ -19,7 +19,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_document.h" #include "data/data_document.h"
#include "data/data_document_media.h" #include "data/data_document_media.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
@ -113,7 +112,7 @@ std::optional<EmojiSection> SetIdEmojiSection(uint64 id) {
rpl::producer<std::vector<GifSection>> GifSectionsValue( rpl::producer<std::vector<GifSection>> GifSectionsValue(
not_null<Main::Session*> session) { not_null<Main::Session*> session) {
const auto config = &session->account().appConfig(); const auto config = &session->appConfig();
return config->value( return config->value(
) | rpl::map([=] { ) | rpl::map([=] {
return config->get<std::vector<QString>>( return config->get<std::vector<QString>>(

View file

@ -21,7 +21,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/ui_utility.h" #include "ui/ui_utility.h"
#include "ui/chat/more_chats_bar.h" #include "ui/chat/more_chats_bar.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "apiwrap.h" #include "apiwrap.h"
@ -33,7 +32,7 @@ constexpr auto kLoadExceptionsAfter = 100;
constexpr auto kLoadExceptionsPerRequest = 100; constexpr auto kLoadExceptionsPerRequest = 100;
[[nodiscard]] crl::time RequestUpdatesEach(not_null<Session*> owner) { [[nodiscard]] crl::time RequestUpdatesEach(not_null<Session*> owner) {
const auto appConfig = &owner->session().account().appConfig(); const auto appConfig = &owner->session().appConfig();
return appConfig->get<int>(u"chatlist_update_period"_q, 3600) return appConfig->get<int>(u"chatlist_update_period"_q, 3600)
* crl::time(1000); * crl::time(1000);
} }
@ -320,7 +319,7 @@ not_null<Dialogs::MainList*> ChatFilters::chatsList(FilterId filterId) {
auto &pointer = _chatsLists[filterId]; auto &pointer = _chatsLists[filterId];
if (!pointer) { if (!pointer) {
auto limit = rpl::single(rpl::empty_value()) | rpl::then( auto limit = rpl::single(rpl::empty_value()) | rpl::then(
_owner->session().account().appConfig().refreshed() _owner->session().appConfig().refreshed()
) | rpl::map([=] { ) | rpl::map([=] {
return _owner->pinnedChatsLimit(filterId); return _owner->pinnedChatsLimit(filterId);
}); });

View file

@ -10,7 +10,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "history/history.h" #include "history/history.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/session/send_as_peers.h" #include "main/session/send_as_peers.h"
#include "data/data_user.h" #include "data/data_user.h"
@ -100,7 +99,7 @@ constexpr auto kTopReactionsLimit = 14;
[[nodiscard]] int SentReactionsLimit(not_null<HistoryItem*> item) { [[nodiscard]] int SentReactionsLimit(not_null<HistoryItem*> item) {
const auto session = &item->history()->session(); const auto session = &item->history()->session();
const auto config = &session->account().appConfig(); const auto config = &session->appConfig();
return session->premium() return session->premium()
? config->get<int>("reactions_user_max_premium", 3) ? config->get<int>("reactions_user_max_premium", 3)
: config->get<int>("reactions_user_max_default", 1); : config->get<int>("reactions_user_max_default", 1);

View file

@ -31,7 +31,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/boxes/confirm_box.h" #include "ui/boxes/confirm_box.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h" #include "main/main_session_settings.h"
#include "main/main_account.h"
#include "main/main_domain.h" #include "main/main_domain.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "mtproto/mtproto_config.h" #include "mtproto/mtproto_config.h"
@ -501,7 +500,7 @@ auto PeerData::unavailableReasons() const
QString PeerData::computeUnavailableReason() const { QString PeerData::computeUnavailableReason() const {
const auto &list = unavailableReasons(); const auto &list = unavailableReasons();
const auto &config = session().account().appConfig(); const auto &config = session().appConfig();
const auto skip = config.get<std::vector<QString>>( const auto skip = config.get<std::vector<QString>>(
"ignore_restriction_reasons", "ignore_restriction_reasons",
std::vector<QString>()); std::vector<QString>());

View file

@ -16,7 +16,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h" #include "data/data_session.h"
#include "data/data_message_reactions.h" #include "data/data_message_reactions.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "ui/image/image_prepare.h" #include "ui/image/image_prepare.h"
#include "base/unixtime.h" #include "base/unixtime.h"
@ -568,12 +567,12 @@ int UniqueReactionsLimit(not_null<Main::AppConfig*> config) {
} }
int UniqueReactionsLimit(not_null<PeerData*> peer) { int UniqueReactionsLimit(not_null<PeerData*> peer) {
return UniqueReactionsLimit(&peer->session().account().appConfig()); return UniqueReactionsLimit(&peer->session().appConfig());
} }
rpl::producer<int> UniqueReactionsLimitValue( rpl::producer<int> UniqueReactionsLimitValue(
not_null<PeerData*> peer) { not_null<PeerData*> peer) {
const auto config = &peer->session().account().appConfig(); const auto config = &peer->session().appConfig();
return config->value( return config->value(
) | rpl::map([=] { ) | rpl::map([=] {
return UniqueReactionsLimit(config); return UniqueReactionsLimit(config);

View file

@ -7,7 +7,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "data/data_premium_limits.h" #include "data/data_premium_limits.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
@ -210,7 +209,7 @@ int PremiumLimits::maxBoostLevel() const {
int PremiumLimits::appConfigLimit( int PremiumLimits::appConfigLimit(
const QString &key, const QString &key,
int fallback) const { int fallback) const {
return _session->account().appConfig().get<int>(key, fallback); return _session->appConfig().get<int>(key, fallback);
} }
bool PremiumLimits::isPremium() const { bool PremiumLimits::isPremium() const {
@ -222,73 +221,73 @@ LevelLimits::LevelLimits(not_null<Main::Session*> session)
} }
int LevelLimits::channelColorLevelMin() const { int LevelLimits::channelColorLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"channel_color_level_min"_q, u"channel_color_level_min"_q,
5); 5);
} }
int LevelLimits::channelBgIconLevelMin() const { int LevelLimits::channelBgIconLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"channel_bg_icon_level_min"_q, u"channel_bg_icon_level_min"_q,
4); 4);
} }
int LevelLimits::channelProfileBgIconLevelMin() const { int LevelLimits::channelProfileBgIconLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"channel_profile_bg_icon_level_min"_q, u"channel_profile_bg_icon_level_min"_q,
7); 7);
} }
int LevelLimits::channelEmojiStatusLevelMin() const { int LevelLimits::channelEmojiStatusLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"channel_emoji_status_level_min"_q, u"channel_emoji_status_level_min"_q,
8); 8);
} }
int LevelLimits::channelWallpaperLevelMin() const { int LevelLimits::channelWallpaperLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"channel_wallpaper_level_min"_q, u"channel_wallpaper_level_min"_q,
9); 9);
} }
int LevelLimits::channelCustomWallpaperLevelMin() const { int LevelLimits::channelCustomWallpaperLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"channel_custom_wallpaper_level_min"_q, u"channel_custom_wallpaper_level_min"_q,
10); 10);
} }
int LevelLimits::groupTranscribeLevelMin() const { int LevelLimits::groupTranscribeLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"group_transcribe_level_min"_q, u"group_transcribe_level_min"_q,
6); 6);
} }
int LevelLimits::groupEmojiStickersLevelMin() const { int LevelLimits::groupEmojiStickersLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"group_emoji_stickers_level_min"_q, u"group_emoji_stickers_level_min"_q,
4); 4);
} }
int LevelLimits::groupProfileBgIconLevelMin() const { int LevelLimits::groupProfileBgIconLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"group_profile_bg_icon_level_min"_q, u"group_profile_bg_icon_level_min"_q,
5); 5);
} }
int LevelLimits::groupEmojiStatusLevelMin() const { int LevelLimits::groupEmojiStatusLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"group_emoji_status_level_min"_q, u"group_emoji_status_level_min"_q,
8); 8);
} }
int LevelLimits::groupWallpaperLevelMin() const { int LevelLimits::groupWallpaperLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"group_wallpaper_level_min"_q, u"group_wallpaper_level_min"_q,
9); 9);
} }
int LevelLimits::groupCustomWallpaperLevelMin() const { int LevelLimits::groupCustomWallpaperLevelMin() const {
return _session->account().appConfig().get<int>( return _session->appConfig().get<int>(
u"group_custom_wallpaper_level_min"_q, u"group_custom_wallpaper_level_min"_q,
10); 10);
} }

View file

@ -9,7 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h" #include "main/main_session_settings.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "apiwrap.h" #include "apiwrap.h"
#include "mainwidget.h" #include "mainwidget.h"
@ -242,7 +241,7 @@ Session::Session(not_null<Main::Session*> session)
, _bigFileCache(Core::App().databases().get( , _bigFileCache(Core::App().databases().get(
_session->local().cacheBigFilePath(), _session->local().cacheBigFilePath(),
_session->local().cacheBigFileSettings())) _session->local().cacheBigFileSettings()))
, _groupFreeTranscribeLevel(session->account().appConfig().value( , _groupFreeTranscribeLevel(session->appConfig().value(
) | rpl::map([limits = Data::LevelLimits(session)] { ) | rpl::map([limits = Data::LevelLimits(session)] {
return limits.groupTranscribeLevelMin(); return limits.groupTranscribeLevelMin();
})) }))
@ -2205,7 +2204,7 @@ rpl::producer<int> Session::maxPinnedChatsLimitValue(
// We always use premium limit in the MainList limit producer, // We always use premium limit in the MainList limit producer,
// because it slices the list to that limit. We don't want to slice // because it slices the list to that limit. We don't want to slice
// premium-ly added chats from the pinned list because of sync issues. // premium-ly added chats from the pinned list because of sync issues.
return _session->account().appConfig().value( return _session->appConfig().value(
) | rpl::map([folder, limits = Data::PremiumLimits(_session)] { ) | rpl::map([folder, limits = Data::PremiumLimits(_session)] {
return folder return folder
? limits.dialogsFolderPinnedPremium() ? limits.dialogsFolderPinnedPremium()
@ -2219,7 +2218,7 @@ rpl::producer<int> Session::maxPinnedChatsLimitValue(
// We always use premium limit in the MainList limit producer, // We always use premium limit in the MainList limit producer,
// because it slices the list to that limit. We don't want to slice // because it slices the list to that limit. We don't want to slice
// premium-ly added chats from the pinned list because of sync issues. // premium-ly added chats from the pinned list because of sync issues.
return _session->account().appConfig().value( return _session->appConfig().value(
) | rpl::map([limits = Data::PremiumLimits(_session)] { ) | rpl::map([limits = Data::PremiumLimits(_session)] {
return limits.dialogFiltersChatsPremium(); return limits.dialogFiltersChatsPremium();
}); });
@ -2227,7 +2226,7 @@ rpl::producer<int> Session::maxPinnedChatsLimitValue(
rpl::producer<int> Session::maxPinnedChatsLimitValue( rpl::producer<int> Session::maxPinnedChatsLimitValue(
not_null<Data::Forum*> forum) const { not_null<Data::Forum*> forum) const {
return _session->account().appConfig().value( return _session->appConfig().value(
) | rpl::map([limits = Data::PremiumLimits(_session)] { ) | rpl::map([limits = Data::PremiumLimits(_session)] {
return limits.topicsPinnedCurrent(); return limits.topicsPinnedCurrent();
}); });
@ -2239,7 +2238,7 @@ rpl::producer<int> Session::maxPinnedChatsLimitValue(
// We always use premium limit in the MainList limit producer, // We always use premium limit in the MainList limit producer,
// because it slices the list to that limit. We don't want to slice // because it slices the list to that limit. We don't want to slice
// premium-ly added chats from the pinned list because of sync issues. // premium-ly added chats from the pinned list because of sync issues.
return _session->account().appConfig().value( return _session->appConfig().value(
) | rpl::map([limits = Data::PremiumLimits(_session)] { ) | rpl::map([limits = Data::PremiumLimits(_session)] {
return limits.savedSublistsPinnedPremium(); return limits.savedSublistsPinnedPremium();
}); });

View file

@ -8,7 +8,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/stickers/data_custom_emoji.h" #include "data/stickers/data_custom_emoji.h"
#include "chat_helpers/stickers_emoji_pack.h" #include "chat_helpers/stickers_emoji_pack.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "data/data_channel.h" #include "data/data_channel.h"
@ -441,7 +440,7 @@ Ui::CustomEmoji::Preview CustomEmojiLoader::preview() {
CustomEmojiManager::CustomEmojiManager(not_null<Session*> owner) CustomEmojiManager::CustomEmojiManager(not_null<Session*> owner)
: _owner(owner) : _owner(owner)
, _repaintTimer([=] { invokeRepaints(); }) { , _repaintTimer([=] { invokeRepaints(); }) {
const auto appConfig = &owner->session().account().appConfig(); const auto appConfig = &owner->session().appConfig();
appConfig->value( appConfig->value(
) | rpl::take_while([=] { ) | rpl::take_while([=] {
return !_coloredSetId; return !_coloredSetId;

View file

@ -26,7 +26,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/application.h" #include "core/application.h"
#include "core/core_settings.h" #include "core/core_settings.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "mtproto/mtproto_config.h" #include "mtproto/mtproto_config.h"
#include "ui/toast/toast.h" #include "ui/toast/toast.h"
@ -1321,7 +1320,7 @@ std::vector<not_null<DocumentData*>> Stickers::getListByEmoji(
ranges::sort(result, std::greater<>(), &StickerWithDate::date); ranges::sort(result, std::greater<>(), &StickerWithDate::date);
const auto appConfig = &session().account().appConfig(); const auto appConfig = &session().appConfig();
auto mixed = std::vector<not_null<DocumentData*>>(); auto mixed = std::vector<not_null<DocumentData*>>();
mixed.reserve(result.size()); mixed.reserve(result.size());
auto premiumIndex = 0, nonPremiumIndex = 0; auto premiumIndex = 0, nonPremiumIndex = 0;

View file

@ -9,7 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_user.h" #include "data/data_user.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_app_config_values.h" #include "main/main_app_config_values.h"
#include "main/main_session.h" #include "main/main_session.h"
@ -118,7 +117,7 @@ void AddPhoneMenu(not_null<Ui::PopupMenu*> menu, not_null<UserData*> user) {
return; return;
} }
using Strings = std::vector<QString>; using Strings = std::vector<QString>;
const auto prefixes = user->session().account().appConfig().get<Strings>( const auto prefixes = user->session().appConfig().get<Strings>(
u"fragment_prefixes"_q, u"fragment_prefixes"_q,
std::vector<QString>()); std::vector<QString>());
{ {

View file

@ -13,7 +13,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h" #include "data/data_session.h"
#include "history/view/media/history_view_sticker_player.h" #include "history/view/media/history_view_sticker_player.h"
#include "info/userpic/info_userpic_emoji_builder_common.h" #include "info/userpic/info_userpic_emoji_builder_common.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "ui/painter.h" #include "ui/painter.h"
@ -171,7 +170,7 @@ EmojiUserpic::EmojiUserpic(
void EmojiUserpic::setDocument(not_null<DocumentData*> document) { void EmojiUserpic::setDocument(not_null<DocumentData*> document) {
if (!_playOnce.has_value()) { if (!_playOnce.has_value()) {
const auto &c = document->owner().session().account().appConfig(); const auto &c = document->owner().session().appConfig();
_playOnce = !c.get<bool>(u"upload_markup_video"_q, false); _playOnce = !c.get<bool>(u"upload_markup_video"_q, false);
} }
_painter.setDocument(document, [=] { update(); }); _painter.setDocument(document, [=] { update(); });

View file

@ -223,4 +223,10 @@ void AppConfig::dismissSuggestion(const QString &key) {
)).send(); )).send();
} }
bool AppConfig::newRequirePremiumFree() const {
return get<bool>(
u"new_noncontact_peers_require_premium_without_ownpremium"_q,
false);
}
} // namespace Main } // namespace Main

View file

@ -54,6 +54,8 @@ public:
const QString &key) const; const QString &key) const;
void dismissSuggestion(const QString &key); void dismissSuggestion(const QString &key);
[[nodiscard]] bool newRequirePremiumFree() const;
void refresh(); void refresh();
private: private:

View file

@ -7,7 +7,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
*/ */
#include "main/main_app_config_values.h" #include "main/main_app_config_values.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
@ -15,7 +14,7 @@ namespace AppConfig {
std::optional<QString> FragmentLink(not_null<Main::Session*> session) { std::optional<QString> FragmentLink(not_null<Main::Session*> session) {
using Strings = std::vector<QString>; using Strings = std::vector<QString>;
const auto domains = session->account().appConfig().get<Strings>( const auto domains = session->appConfig().get<Strings>(
u"whitelisted_domains"_q, u"whitelisted_domains"_q,
std::vector<QString>()); std::vector<QString>());
const auto proj = [&, domain = u"fragment"_q](const QString &p) { const auto proj = [&, domain = u"fragment"_q](const QString &p) {

View file

@ -138,10 +138,10 @@ Session::Session(
}, _lifetime); }, _lifetime);
#ifndef OS_MAC_STORE #ifndef OS_MAC_STORE
_account->appConfig().value( appConfig().value(
) | rpl::start_with_next([=] { ) | rpl::start_with_next([=] {
_premiumPossible = !_account->appConfig().get<bool>( _premiumPossible = !appConfig().get<bool>(
"premium_purchase_blocked", u"premium_purchase_blocked"_q,
true); true);
}, _lifetime); }, _lifetime);
#endif // OS_MAC_STORE #endif // OS_MAC_STORE
@ -227,6 +227,10 @@ Storage::Domain &Session::domainLocal() const {
return _account->domainLocal(); return _account->domainLocal();
} }
AppConfig &Session::appConfig() const {
return _account->appConfig();
}
void Session::notifyDownloaderTaskFinished() { void Session::notifyDownloaderTaskFinished() {
downloader().notifyTaskFinished(); downloader().notifyTaskFinished();
} }

View file

@ -63,6 +63,7 @@ struct ColorIndicesCompressed;
namespace Main { namespace Main {
class Account; class Account;
class AppConfig;
class Domain; class Domain;
class SessionSettings; class SessionSettings;
class SendAsPeers; class SendAsPeers;
@ -83,6 +84,8 @@ public:
[[nodiscard]] Domain &domain() const; [[nodiscard]] Domain &domain() const;
[[nodiscard]] Storage::Domain &domainLocal() const; [[nodiscard]] Storage::Domain &domainLocal() const;
[[nodiscard]] AppConfig &appConfig() const;
[[nodiscard]] bool premium() const; [[nodiscard]] bool premium() const;
[[nodiscard]] bool premiumPossible() const; [[nodiscard]] bool premiumPossible() const;
[[nodiscard]] rpl::producer<bool> premiumPossibleValue() const; [[nodiscard]] rpl::producer<bool> premiumPossibleValue() const;

View file

@ -82,7 +82,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "main/main_session.h" #include "main/main_session.h"
#include "main/main_session_settings.h" #include "main/main_session_settings.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_account.h"
#include "settings/settings_premium.h" #include "settings/settings_premium.h"
#include "support/support_helper.h" #include "support/support_helper.h"
#include "storage/storage_user_photos.h" #include "storage/storage_user_photos.h"
@ -1885,7 +1884,7 @@ void MainWidget::showNonPremiumLimitToast(bool download) {
const auto link = download const auto link = download
? tr::lng_limit_download_subscribe_link(tr::now) ? tr::lng_limit_download_subscribe_link(tr::now)
: tr::lng_limit_upload_subscribe_link(tr::now); : tr::lng_limit_upload_subscribe_link(tr::now);
const auto better = session().account().appConfig().get<double>(download const auto better = session().appConfig().get<double>(download
? u"upload_premium_speedup_download"_q ? u"upload_premium_speedup_download"_q
: u"upload_premium_speedup_upload"_q, 10.); : u"upload_premium_speedup_upload"_q, 10.);
const auto percent = int(base::SafeRound(better * 100.)); const auto percent = int(base::SafeRound(better * 100.));

View file

@ -15,7 +15,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h" #include "data/data_session.h"
#include "history/history_item.h" #include "history/history_item.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "settings/settings_common.h" // IconDescriptor. #include "settings/settings_common.h" // IconDescriptor.
@ -35,13 +34,13 @@ namespace AntiSpamMenu {
namespace { namespace {
[[nodiscard]] int EnableAntiSpamMinMembers(not_null<ChannelData*> channel) { [[nodiscard]] int EnableAntiSpamMinMembers(not_null<ChannelData*> channel) {
return channel->session().account().appConfig().get<int>( return channel->session().appConfig().get<int>(
u"telegram_antispam_group_size_min"_q, u"telegram_antispam_group_size_min"_q,
100); 100);
} }
[[nodiscard]] UserId AntiSpamUserId(not_null<ChannelData*> channel) { [[nodiscard]] UserId AntiSpamUserId(not_null<ChannelData*> channel) {
const auto id = channel->session().account().appConfig().get<QString>( const auto id = channel->session().appConfig().get<QString>(
u"telegram_antispam_user_id"_q, u"telegram_antispam_user_id"_q,
QString()); QString());
return UserId(id.toULongLong()); return UserId(id.toULongLong());

View file

@ -25,7 +25,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "history/view/history_view_element.h" #include "history/view/history_view_element.h"
#include "history/history.h" #include "history/history.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "settings/business/settings_recipients_helper.h" #include "settings/business/settings_recipients_helper.h"
@ -152,7 +151,7 @@ private:
not_null<Main::Session*> session, not_null<Main::Session*> session,
const QString &key, const QString &key,
int defaultValue) { int defaultValue) {
return session->account().appConfig().get<int>(key, defaultValue); return session->appConfig().get<int>(key, defaultValue);
} }
[[nodiscard]] not_null<Ui::InputField*> AddPartInput( [[nodiscard]] not_null<Ui::InputField*> AddPartInput(

View file

@ -25,7 +25,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_document.h" #include "data/data_document.h"
#include "data/data_user.h" #include "data/data_user.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "settings/business/settings_recipients_helper.h" #include "settings/business/settings_recipients_helper.h"
@ -726,7 +725,7 @@ void ChatLinks::setupContent(
Ui::AddSkip(content); Ui::AddSkip(content);
const auto limit = controller->session().account().appConfig().get<int>( const auto limit = controller->session().appConfig().get<int>(
u"business_chat_links_limit"_q, u"business_chat_links_limit"_q,
100); 100);
const auto add = content->add( const auto add = content->add(

View file

@ -14,7 +14,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_user.h" #include "data/data_user.h"
#include "history/history.h" #include "history/history.h"
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "settings/settings_common.h" #include "settings/settings_common.h"
@ -395,25 +394,25 @@ rpl::producer<bool> ShortcutExistsValue(
} }
int ShortcutsLimit(not_null<Main::Session*> session) { int ShortcutsLimit(not_null<Main::Session*> session) {
const auto appConfig = &session->account().appConfig(); const auto appConfig = &session->appConfig();
return appConfig->get<int>("quick_replies_limit", 100); return appConfig->get<int>("quick_replies_limit", 100);
} }
rpl::producer<int> ShortcutsLimitValue(not_null<Main::Session*> session) { rpl::producer<int> ShortcutsLimitValue(not_null<Main::Session*> session) {
const auto appConfig = &session->account().appConfig(); const auto appConfig = &session->appConfig();
return appConfig->value() | rpl::map([=] { return appConfig->value() | rpl::map([=] {
return ShortcutsLimit(session); return ShortcutsLimit(session);
}); });
} }
int ShortcutMessagesLimit(not_null<Main::Session*> session) { int ShortcutMessagesLimit(not_null<Main::Session*> session) {
const auto appConfig = &session->account().appConfig(); const auto appConfig = &session->appConfig();
return appConfig->get<int>("quick_reply_messages_limit", 20); return appConfig->get<int>("quick_reply_messages_limit", 20);
} }
rpl::producer<int> ShortcutMessagesLimitValue( rpl::producer<int> ShortcutMessagesLimitValue(
not_null<Main::Session*> session) { not_null<Main::Session*> session) {
const auto appConfig = &session->account().appConfig(); const auto appConfig = &session->appConfig();
return appConfig->value() | rpl::map([=] { return appConfig->value() | rpl::map([=] {
return ShortcutMessagesLimit(session); return ShortcutMessagesLimit(session);
}); });

View file

@ -20,7 +20,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "info/info_wrap_widget.h" // Info::Wrap. #include "info/info_wrap_widget.h" // Info::Wrap.
#include "info/settings/info_settings_widget.h" // SectionCustomTopBarData. #include "info/settings/info_settings_widget.h" // SectionCustomTopBarData.
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "settings/business/settings_away_message.h" #include "settings/business/settings_away_message.h"
@ -256,10 +255,10 @@ void AddBusinessSummary(
auto icons = std::vector<const style::icon *>(); auto icons = std::vector<const style::icon *>();
icons.reserve(int(entryMap.size())); icons.reserve(int(entryMap.size()));
{ {
const auto &account = controller->session().account(); const auto session = &controller->session();
const auto mtpOrder = /*account.appConfig().get<Order>( const auto mtpOrder = session->appConfig().get<Order>(
"business_promo_order", "business_promo_order",
FallbackOrder())*/FallbackOrder(); AssertIsDebug(); FallbackOrder());
const auto processEntry = [&](Entry &entry) { const auto processEntry = [&](Entry &entry) {
icons.push_back(entry.icon); icons.push_back(entry.icon);
addRow(entry); addRow(entry);
@ -690,7 +689,7 @@ void ShowBusiness(not_null<Window::SessionController*> controller) {
std::vector<PremiumFeature> BusinessFeaturesOrder( std::vector<PremiumFeature> BusinessFeaturesOrder(
not_null<::Main::Session*> session) { not_null<::Main::Session*> session) {
const auto mtpOrder = session->account().appConfig().get<Order>( const auto mtpOrder = session->appConfig().get<Order>(
"business_promo_order", "business_promo_order",
FallbackOrder()); FallbackOrder());
return ranges::views::all( return ranges::views::all(

View file

@ -375,7 +375,7 @@ void SetupSections(
} else { } else {
const auto enabled = [=] { const auto enabled = [=] {
const auto result = account->appConfig().get<bool>( const auto result = account->appConfig().get<bool>(
"dialog_filters_enabled", u"dialog_filters_enabled"_q,
false); false);
if (result) { if (result) {
preload(); preload();

View file

@ -26,7 +26,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "info/profile/info_profile_values.h" #include "info/profile/info_profile_values.h"
#include "info/settings/info_settings_widget.h" // SectionCustomTopBarData. #include "info/settings/info_settings_widget.h" // SectionCustomTopBarData.
#include "lang/lang_keys.h" #include "lang/lang_keys.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_session.h" #include "main/main_session.h"
#include "settings/settings_common_session.h" #include "settings/settings_common_session.h"
@ -1331,12 +1330,12 @@ void ShowEmojiStatusPremium(
void StartPremiumPayment( void StartPremiumPayment(
not_null<Window::SessionController*> controller, not_null<Window::SessionController*> controller,
const QString &ref) { const QString &ref) {
const auto account = &controller->session().account(); const auto session = &controller->session();
const auto username = account->appConfig().get<QString>( const auto username = session->appConfig().get<QString>(
"premium_bot_username", u"premium_bot_username"_q,
QString()); QString());
const auto slug = account->appConfig().get<QString>( const auto slug = session->appConfig().get<QString>(
"premium_invoice_slug", u"premium_invoice_slug"_q,
QString()); QString());
if (!username.isEmpty()) { if (!username.isEmpty()) {
controller->showPeerByLink(Window::PeerByLinkInfo{ controller->showPeerByLink(Window::PeerByLinkInfo{
@ -1539,7 +1538,7 @@ not_null<Ui::GradientButton*> CreateSubscribeButton(
std::vector<PremiumFeature> PremiumFeaturesOrder( std::vector<PremiumFeature> PremiumFeaturesOrder(
not_null<Main::Session*> session) { not_null<Main::Session*> session) {
const auto mtpOrder = session->account().appConfig().get<Order>( const auto mtpOrder = session->appConfig().get<Order>(
"premium_promo_order", "premium_promo_order",
FallbackOrder()); FallbackOrder());
return ranges::views::all( return ranges::views::all(
@ -1683,8 +1682,8 @@ void AddSummaryPremium(
auto icons = std::vector<const style::icon *>(); auto icons = std::vector<const style::icon *>();
icons.reserve(int(entryMap.size())); icons.reserve(int(entryMap.size()));
{ {
const auto &account = controller->session().account(); const auto session = &controller->session();
const auto mtpOrder = account.appConfig().get<Order>( const auto mtpOrder = session->appConfig().get<Order>(
"premium_promo_order", "premium_promo_order",
FallbackOrder()); FallbackOrder());
const auto processEntry = [&](Entry &entry) { const auto processEntry = [&](Entry &entry) {

View file

@ -64,7 +64,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/boxes/calendar_box.h" #include "ui/boxes/calendar_box.h"
#include "ui/boxes/confirm_box.h" #include "ui/boxes/confirm_box.h"
#include "mainwidget.h" #include "mainwidget.h"
#include "main/main_account.h"
#include "main/main_app_config.h" #include "main/main_app_config.h"
#include "main/main_domain.h" #include "main/main_domain.h"
#include "main/main_session.h" #include "main/main_session.h"
@ -1230,7 +1229,7 @@ bool SessionController::skipNonPremiumLimitToast(bool download) const {
const auto last = download const auto last = download
? session().settings().lastNonPremiumLimitDownload() ? session().settings().lastNonPremiumLimitDownload()
: session().settings().lastNonPremiumLimitUpload(); : session().settings().lastNonPremiumLimitUpload();
const auto delay = session().account().appConfig().get<int>( const auto delay = session().appConfig().get<int>(
u"upload_premium_speedup_notify_period"_q, u"upload_premium_speedup_notify_period"_q,
3600); 3600);
return (last && now < last + delay && now > last - delay); return (last && now < last + delay && now > last - delay);