diff --git a/Telegram/Resources/tl/api.tl b/Telegram/Resources/tl/api.tl index 1f20c8085..2e6d219a7 100644 --- a/Telegram/Resources/tl/api.tl +++ b/Telegram/Resources/tl/api.tl @@ -1837,6 +1837,7 @@ messages.getDefaultHistoryTTL#658b7188 = DefaultHistoryTTL; messages.sendBotRequestedPeer#fe38d01b peer:InputPeer msg_id:int button_id:int requested_peer:InputPeer = Updates; messages.getEmojiGroups#7488ce5b hash:int = messages.EmojiGroups; messages.getEmojiStatusGroups#2ecd56cd hash:int = messages.EmojiGroups; +messages.getEmojiProfilePhotoGroups#21a548f3 hash:int = messages.EmojiGroups; messages.searchCustomEmoji#2c11c0d7 emoticon:string hash:long = EmojiList; messages.togglePeerTranslations#e47cb579 flags:# disabled:flags.0?true peer:InputPeer = Bool; diff --git a/Telegram/SourceFiles/data/data_emoji_statuses.cpp b/Telegram/SourceFiles/data/data_emoji_statuses.cpp index cf0ac3040..25ea58aca 100644 --- a/Telegram/SourceFiles/data/data_emoji_statuses.cpp +++ b/Telegram/SourceFiles/data/data_emoji_statuses.cpp @@ -137,6 +137,12 @@ auto EmojiStatuses::statusGroupsValue() const -> rpl::producer { return _statusGroups.data.value(); } +auto EmojiStatuses::profilePhotoGroupsValue() const +-> rpl::producer { + const_cast(this)->requestProfilePhotoGroups(); + return _profilePhotoGroups.data.value(); +} + void EmojiStatuses::requestEmojiGroups() { requestGroups( &_emojiGroups, @@ -150,6 +156,13 @@ void EmojiStatuses::requestStatusGroups() { MTPmessages_GetEmojiStatusGroups(MTP_int(_statusGroups.hash))); } +void EmojiStatuses::requestProfilePhotoGroups() { + requestGroups( + &_profilePhotoGroups, + MTPmessages_GetEmojiProfilePhotoGroups( + MTP_int(_profilePhotoGroups.hash))); +} + [[nodiscard]] std::vector GroupsFromTL( const MTPDmessages_emojiGroups &data) { const auto &list = data.vgroups().v; diff --git a/Telegram/SourceFiles/data/data_emoji_statuses.h b/Telegram/SourceFiles/data/data_emoji_statuses.h index c44678785..29bd8491c 100644 --- a/Telegram/SourceFiles/data/data_emoji_statuses.h +++ b/Telegram/SourceFiles/data/data_emoji_statuses.h @@ -56,8 +56,10 @@ public: using Groups = std::vector; [[nodiscard]] rpl::producer emojiGroupsValue() const; [[nodiscard]] rpl::producer statusGroupsValue() const; + [[nodiscard]] rpl::producer profilePhotoGroupsValue() const; void requestEmojiGroups(); void requestStatusGroups(); + void requestProfilePhotoGroups(); private: struct GroupsType { @@ -105,6 +107,7 @@ private: GroupsType _emojiGroups; GroupsType _statusGroups; + GroupsType _profilePhotoGroups; rpl::lifetime _lifetime;