mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Update API scheme on layer 160.
This commit is contained in:
parent
39a1743e7e
commit
5d234d3103
3 changed files with 41 additions and 8 deletions
|
@ -56,6 +56,15 @@ rpl::producer<bool> GlobalPrivacy::archiveAndMute() const {
|
||||||
return _archiveAndMute.value();
|
return _archiveAndMute.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UnarchiveOnNewMessage GlobalPrivacy::unarchiveOnNewMessageCurrent() const {
|
||||||
|
return _unarchiveOnNewMessage.current();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto GlobalPrivacy::unarchiveOnNewMessage() const
|
||||||
|
-> rpl::producer<UnarchiveOnNewMessage> {
|
||||||
|
return _unarchiveOnNewMessage.value();
|
||||||
|
}
|
||||||
|
|
||||||
rpl::producer<bool> GlobalPrivacy::showArchiveAndMute() const {
|
rpl::producer<bool> GlobalPrivacy::showArchiveAndMute() const {
|
||||||
using namespace rpl::mappers;
|
using namespace rpl::mappers;
|
||||||
|
|
||||||
|
@ -78,11 +87,20 @@ void GlobalPrivacy::dismissArchiveAndMuteSuggestion() {
|
||||||
void GlobalPrivacy::update(bool archiveAndMute) {
|
void GlobalPrivacy::update(bool archiveAndMute) {
|
||||||
using Flag = MTPDglobalPrivacySettings::Flag;
|
using Flag = MTPDglobalPrivacySettings::Flag;
|
||||||
|
|
||||||
|
const auto unarchive = unarchiveOnNewMessageCurrent();
|
||||||
_api.request(_requestId).cancel();
|
_api.request(_requestId).cancel();
|
||||||
|
const auto flags = Flag()
|
||||||
|
| (archiveAndMute
|
||||||
|
? Flag::f_archive_and_mute_new_noncontact_peers
|
||||||
|
: Flag())
|
||||||
|
| (unarchive == UnarchiveOnNewMessage::AnyUnmuted
|
||||||
|
? Flag::f_keep_archived_unmuted
|
||||||
|
: Flag())
|
||||||
|
| (unarchive != UnarchiveOnNewMessage::None
|
||||||
|
? Flag::f_keep_archived_folders
|
||||||
|
: Flag());
|
||||||
_requestId = _api.request(MTPaccount_SetGlobalPrivacySettings(
|
_requestId = _api.request(MTPaccount_SetGlobalPrivacySettings(
|
||||||
MTP_globalPrivacySettings(
|
MTP_globalPrivacySettings(MTP_flags(flags))
|
||||||
MTP_flags(Flag::f_archive_and_mute_new_noncontact_peers),
|
|
||||||
MTP_bool(archiveAndMute))
|
|
||||||
)).done([=](const MTPGlobalPrivacySettings &result) {
|
)).done([=](const MTPGlobalPrivacySettings &result) {
|
||||||
_requestId = 0;
|
_requestId = 0;
|
||||||
apply(result);
|
apply(result);
|
||||||
|
@ -94,9 +112,12 @@ void GlobalPrivacy::update(bool archiveAndMute) {
|
||||||
|
|
||||||
void GlobalPrivacy::apply(const MTPGlobalPrivacySettings &data) {
|
void GlobalPrivacy::apply(const MTPGlobalPrivacySettings &data) {
|
||||||
data.match([&](const MTPDglobalPrivacySettings &data) {
|
data.match([&](const MTPDglobalPrivacySettings &data) {
|
||||||
_archiveAndMute = data.varchive_and_mute_new_noncontact_peers()
|
_archiveAndMute = data.is_archive_and_mute_new_noncontact_peers();
|
||||||
? mtpIsTrue(*data.varchive_and_mute_new_noncontact_peers())
|
_unarchiveOnNewMessage = data.is_keep_archived_unmuted()
|
||||||
: false;
|
? UnarchiveOnNewMessage::AnyUnmuted
|
||||||
|
: data.is_keep_archived_folders()
|
||||||
|
? UnarchiveOnNewMessage::NotInFoldersUnmuted
|
||||||
|
: UnarchiveOnNewMessage::None;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,12 @@ class Session;
|
||||||
|
|
||||||
namespace Api {
|
namespace Api {
|
||||||
|
|
||||||
|
enum class UnarchiveOnNewMessage {
|
||||||
|
None,
|
||||||
|
NotInFoldersUnmuted,
|
||||||
|
AnyUnmuted,
|
||||||
|
};
|
||||||
|
|
||||||
class GlobalPrivacy final {
|
class GlobalPrivacy final {
|
||||||
public:
|
public:
|
||||||
explicit GlobalPrivacy(not_null<ApiWrap*> api);
|
explicit GlobalPrivacy(not_null<ApiWrap*> api);
|
||||||
|
@ -26,6 +32,10 @@ public:
|
||||||
|
|
||||||
[[nodiscard]] bool archiveAndMuteCurrent() const;
|
[[nodiscard]] bool archiveAndMuteCurrent() const;
|
||||||
[[nodiscard]] rpl::producer<bool> archiveAndMute() const;
|
[[nodiscard]] rpl::producer<bool> archiveAndMute() const;
|
||||||
|
[[nodiscard]] auto unarchiveOnNewMessageCurrent() const
|
||||||
|
-> UnarchiveOnNewMessage;
|
||||||
|
[[nodiscard]] auto unarchiveOnNewMessage() const
|
||||||
|
-> rpl::producer<UnarchiveOnNewMessage>;
|
||||||
[[nodiscard]] rpl::producer<bool> showArchiveAndMute() const;
|
[[nodiscard]] rpl::producer<bool> showArchiveAndMute() const;
|
||||||
[[nodiscard]] rpl::producer<> suggestArchiveAndMute() const;
|
[[nodiscard]] rpl::producer<> suggestArchiveAndMute() const;
|
||||||
void dismissArchiveAndMuteSuggestion();
|
void dismissArchiveAndMuteSuggestion();
|
||||||
|
@ -37,6 +47,8 @@ private:
|
||||||
MTP::Sender _api;
|
MTP::Sender _api;
|
||||||
mtpRequestId _requestId = 0;
|
mtpRequestId _requestId = 0;
|
||||||
rpl::variable<bool> _archiveAndMute = false;
|
rpl::variable<bool> _archiveAndMute = false;
|
||||||
|
rpl::variable<UnarchiveOnNewMessage> _unarchiveOnNewMessage
|
||||||
|
= UnarchiveOnNewMessage::None;
|
||||||
rpl::variable<bool> _showArchiveAndMute = false;
|
rpl::variable<bool> _showArchiveAndMute = false;
|
||||||
std::vector<Fn<void()>> _callbacks;
|
std::vector<Fn<void()>> _callbacks;
|
||||||
|
|
||||||
|
|
|
@ -1238,7 +1238,7 @@ statsGroupTopInviter#535f779d user_id:long invitations:int = StatsGroupTopInvite
|
||||||
|
|
||||||
stats.megagroupStats#ef7ff916 period:StatsDateRangeDays members:StatsAbsValueAndPrev messages:StatsAbsValueAndPrev viewers:StatsAbsValueAndPrev posters:StatsAbsValueAndPrev growth_graph:StatsGraph members_graph:StatsGraph new_members_by_source_graph:StatsGraph languages_graph:StatsGraph messages_graph:StatsGraph actions_graph:StatsGraph top_hours_graph:StatsGraph weekdays_graph:StatsGraph top_posters:Vector<StatsGroupTopPoster> top_admins:Vector<StatsGroupTopAdmin> top_inviters:Vector<StatsGroupTopInviter> users:Vector<User> = stats.MegagroupStats;
|
stats.megagroupStats#ef7ff916 period:StatsDateRangeDays members:StatsAbsValueAndPrev messages:StatsAbsValueAndPrev viewers:StatsAbsValueAndPrev posters:StatsAbsValueAndPrev growth_graph:StatsGraph members_graph:StatsGraph new_members_by_source_graph:StatsGraph languages_graph:StatsGraph messages_graph:StatsGraph actions_graph:StatsGraph top_hours_graph:StatsGraph weekdays_graph:StatsGraph top_posters:Vector<StatsGroupTopPoster> top_admins:Vector<StatsGroupTopAdmin> top_inviters:Vector<StatsGroupTopInviter> users:Vector<User> = stats.MegagroupStats;
|
||||||
|
|
||||||
globalPrivacySettings#bea2f424 flags:# archive_and_mute_new_noncontact_peers:flags.0?Bool = GlobalPrivacySettings;
|
globalPrivacySettings#734c4ccb flags:# archive_and_mute_new_noncontact_peers:flags.0?true keep_archived_unmuted:flags.1?true keep_archived_folders:flags.2?true = GlobalPrivacySettings;
|
||||||
|
|
||||||
help.countryCode#4203c5ef flags:# country_code:string prefixes:flags.0?Vector<string> patterns:flags.1?Vector<string> = help.CountryCode;
|
help.countryCode#4203c5ef flags:# country_code:string prefixes:flags.0?Vector<string> patterns:flags.1?Vector<string> = help.CountryCode;
|
||||||
|
|
||||||
|
@ -1529,7 +1529,7 @@ sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Phot
|
||||||
storyViews#d36760cf flags:# views_count:int recent_viewers:flags.0?Vector<long> = StoryViews;
|
storyViews#d36760cf flags:# views_count:int recent_viewers:flags.0?Vector<long> = StoryViews;
|
||||||
|
|
||||||
storyItemDeleted#51e6ee4f id:int = StoryItem;
|
storyItemDeleted#51e6ee4f id:int = StoryItem;
|
||||||
storyItemSkipped#693206a2 id:int date:int expire_date:int = StoryItem;
|
storyItemSkipped#ffadc913 flags:# close_friends:flags.8?true id:int date:int expire_date:int = StoryItem;
|
||||||
storyItem#562aa637 flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true id:int date:int expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews = StoryItem;
|
storyItem#562aa637 flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true id:int date:int expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews = StoryItem;
|
||||||
|
|
||||||
userStories#8611a200 flags:# user_id:long max_read_id:flags.0?int stories:Vector<StoryItem> = UserStories;
|
userStories#8611a200 flags:# user_id:long max_read_id:flags.0?int stories:Vector<StoryItem> = UserStories;
|
||||||
|
|
Loading…
Add table
Reference in a new issue