diff --git a/Telegram/SourceFiles/api/api_global_privacy.cpp b/Telegram/SourceFiles/api/api_global_privacy.cpp index 6a891f63e..d1beddfb6 100644 --- a/Telegram/SourceFiles/api/api_global_privacy.cpp +++ b/Telegram/SourceFiles/api/api_global_privacy.cpp @@ -141,6 +141,8 @@ void GlobalPrivacy::update( using Flag = MTPDglobalPrivacySettings::Flag; _api.request(_requestId).cancel(); + const auto newRequirePremiumAllowed = _session->premium() + || _session->appConfig().newRequirePremiumFree(); const auto flags = Flag() | (archiveAndMute ? Flag::f_archive_and_mute_new_noncontact_peers @@ -152,7 +154,7 @@ void GlobalPrivacy::update( ? Flag::f_keep_archived_folders : Flag()) | (hideReadTime ? Flag::f_hide_read_marks : Flag()) - | ((newRequirePremium && _session->premium()) + | ((newRequirePremium && newRequirePremiumAllowed) ? Flag::f_new_noncontact_peers_require_premium : Flag()); _requestId = _api.request(MTPaccount_SetGlobalPrivacySettings( diff --git a/Telegram/SourceFiles/boxes/edit_privacy_box.cpp b/Telegram/SourceFiles/boxes/edit_privacy_box.cpp index cd472746e..9dfcf5ade 100644 --- a/Telegram/SourceFiles/boxes/edit_privacy_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_privacy_box.cpp @@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "calls/calls_instance.h" #include "lang/lang_keys.h" #include "apiwrap.h" +#include "main/main_app_config.h" #include "main/main_session.h" #include "data/data_user.h" #include "data/data_chat.h" @@ -488,7 +489,10 @@ void EditMessagesPrivacyBox( constexpr auto kOptionAll = 0; constexpr auto kOptionPremium = 1; - const auto premium = controller->session().premium(); + const auto allowed = [=] { + return controller->session().premium() + || controller->session().appConfig().newRequirePremiumFree(); + }; const auto privacy = &controller->session().api().globalPrivacy(); const auto inner = box->verticalLayout(); inner->add(object_ptr(box)); @@ -550,7 +554,7 @@ void EditMessagesPrivacyBox( }), }); }; - if (!premium) { + if (!allowed()) { CreateRadiobuttonLock(restricted, st::messagePrivacyCheck); group->setChangedCallback([=](int value) { @@ -562,7 +566,7 @@ void EditMessagesPrivacyBox( } Ui::AddDividerText(inner, tr::lng_messages_privacy_about()); - if (!premium) { + if (!allowed()) { Ui::AddSkip(inner); Settings::AddButtonWithIcon( inner, @@ -581,7 +585,7 @@ void EditMessagesPrivacyBox( }); } else { box->addButton(tr::lng_settings_save(), [=] { - if (controller->session().premium()) { + if (allowed()) { privacy->updateNewRequirePremium( group->current() == kOptionPremium); box->closeBox(); diff --git a/Telegram/SourceFiles/settings/settings_privacy_security.cpp b/Telegram/SourceFiles/settings/settings_privacy_security.cpp index 1b70efbb4..eb5d0e78a 100644 --- a/Telegram/SourceFiles/settings/settings_privacy_security.cpp +++ b/Telegram/SourceFiles/settings/settings_privacy_security.cpp @@ -47,6 +47,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_chat.h" #include "data/data_channel.h" #include "data/data_peer_values.h" +#include "main/main_app_config.h" #include "main/main_domain.h" #include "main/main_session.h" #include "storage/storage_domain.h" @@ -307,8 +308,9 @@ void AddMessagesPrivacyButton( button->addClickHandler([=] { controller->show(Box(EditMessagesPrivacyBox, controller)); }); - - AddPremiumStar(button, session, rpl::duplicate(label), st.padding); + if (!session->appConfig().newRequirePremiumFree()) { + AddPremiumStar(button, session, rpl::duplicate(label), st.padding); + } } rpl::producer BlockedPeersCount(not_null<::Main::Session*> session) {