mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Allow newRequirePremium for free if server allows.
This commit is contained in:
parent
da7a796edb
commit
68ded1a6e0
3 changed files with 15 additions and 7 deletions
|
@ -141,6 +141,8 @@ void GlobalPrivacy::update(
|
||||||
using Flag = MTPDglobalPrivacySettings::Flag;
|
using Flag = MTPDglobalPrivacySettings::Flag;
|
||||||
|
|
||||||
_api.request(_requestId).cancel();
|
_api.request(_requestId).cancel();
|
||||||
|
const auto newRequirePremiumAllowed = _session->premium()
|
||||||
|
|| _session->appConfig().newRequirePremiumFree();
|
||||||
const auto flags = Flag()
|
const auto flags = Flag()
|
||||||
| (archiveAndMute
|
| (archiveAndMute
|
||||||
? Flag::f_archive_and_mute_new_noncontact_peers
|
? Flag::f_archive_and_mute_new_noncontact_peers
|
||||||
|
@ -152,7 +154,7 @@ void GlobalPrivacy::update(
|
||||||
? Flag::f_keep_archived_folders
|
? Flag::f_keep_archived_folders
|
||||||
: Flag())
|
: Flag())
|
||||||
| (hideReadTime ? Flag::f_hide_read_marks : Flag())
|
| (hideReadTime ? Flag::f_hide_read_marks : Flag())
|
||||||
| ((newRequirePremium && _session->premium())
|
| ((newRequirePremium && newRequirePremiumAllowed)
|
||||||
? Flag::f_new_noncontact_peers_require_premium
|
? Flag::f_new_noncontact_peers_require_premium
|
||||||
: Flag());
|
: Flag());
|
||||||
_requestId = _api.request(MTPaccount_SetGlobalPrivacySettings(
|
_requestId = _api.request(MTPaccount_SetGlobalPrivacySettings(
|
||||||
|
|
|
@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "calls/calls_instance.h"
|
#include "calls/calls_instance.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "apiwrap.h"
|
#include "apiwrap.h"
|
||||||
|
#include "main/main_app_config.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "data/data_user.h"
|
#include "data/data_user.h"
|
||||||
#include "data/data_chat.h"
|
#include "data/data_chat.h"
|
||||||
|
@ -488,7 +489,10 @@ void EditMessagesPrivacyBox(
|
||||||
constexpr auto kOptionAll = 0;
|
constexpr auto kOptionAll = 0;
|
||||||
constexpr auto kOptionPremium = 1;
|
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 privacy = &controller->session().api().globalPrivacy();
|
||||||
const auto inner = box->verticalLayout();
|
const auto inner = box->verticalLayout();
|
||||||
inner->add(object_ptr<Ui::PlainShadow>(box));
|
inner->add(object_ptr<Ui::PlainShadow>(box));
|
||||||
|
@ -550,7 +554,7 @@ void EditMessagesPrivacyBox(
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
if (!premium) {
|
if (!allowed()) {
|
||||||
CreateRadiobuttonLock(restricted, st::messagePrivacyCheck);
|
CreateRadiobuttonLock(restricted, st::messagePrivacyCheck);
|
||||||
|
|
||||||
group->setChangedCallback([=](int value) {
|
group->setChangedCallback([=](int value) {
|
||||||
|
@ -562,7 +566,7 @@ void EditMessagesPrivacyBox(
|
||||||
}
|
}
|
||||||
|
|
||||||
Ui::AddDividerText(inner, tr::lng_messages_privacy_about());
|
Ui::AddDividerText(inner, tr::lng_messages_privacy_about());
|
||||||
if (!premium) {
|
if (!allowed()) {
|
||||||
Ui::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
Settings::AddButtonWithIcon(
|
Settings::AddButtonWithIcon(
|
||||||
inner,
|
inner,
|
||||||
|
@ -581,7 +585,7 @@ void EditMessagesPrivacyBox(
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
box->addButton(tr::lng_settings_save(), [=] {
|
box->addButton(tr::lng_settings_save(), [=] {
|
||||||
if (controller->session().premium()) {
|
if (allowed()) {
|
||||||
privacy->updateNewRequirePremium(
|
privacy->updateNewRequirePremium(
|
||||||
group->current() == kOptionPremium);
|
group->current() == kOptionPremium);
|
||||||
box->closeBox();
|
box->closeBox();
|
||||||
|
|
|
@ -47,6 +47,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_chat.h"
|
#include "data/data_chat.h"
|
||||||
#include "data/data_channel.h"
|
#include "data/data_channel.h"
|
||||||
#include "data/data_peer_values.h"
|
#include "data/data_peer_values.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"
|
||||||
#include "storage/storage_domain.h"
|
#include "storage/storage_domain.h"
|
||||||
|
@ -307,8 +308,9 @@ void AddMessagesPrivacyButton(
|
||||||
button->addClickHandler([=] {
|
button->addClickHandler([=] {
|
||||||
controller->show(Box(EditMessagesPrivacyBox, controller));
|
controller->show(Box(EditMessagesPrivacyBox, controller));
|
||||||
});
|
});
|
||||||
|
if (!session->appConfig().newRequirePremiumFree()) {
|
||||||
AddPremiumStar(button, session, rpl::duplicate(label), st.padding);
|
AddPremiumStar(button, session, rpl::duplicate(label), st.padding);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rpl::producer<int> BlockedPeersCount(not_null<::Main::Session*> session) {
|
rpl::producer<int> BlockedPeersCount(not_null<::Main::Session*> session) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue