diff --git a/td/generate/scheme/td_api.tl b/td/generate/scheme/td_api.tl index 86b6151bc..bbf311ab7 100644 --- a/td/generate/scheme/td_api.tl +++ b/td/generate/scheme/td_api.tl @@ -3726,6 +3726,9 @@ emojiCategoryTypeEmojiStatus = EmojiCategoryType; //@description The category must be used for chat photo emoji selection emojiCategoryTypeChatPhoto = EmojiCategoryType; +//@description The category containing greeting emoji and Premium stickers that emust be used for start page sticker selection +emojiCategoryTypeCombined = EmojiCategoryType; + //@description Describes position of a clickable rectangle area on a story media //@x_percentage The abscissa of the rectangle's center, as a percentage of the media width diff --git a/td/telegram/EmojiGroupType.cpp b/td/telegram/EmojiGroupType.cpp index 900d5020f..2580f9291 100644 --- a/td/telegram/EmojiGroupType.cpp +++ b/td/telegram/EmojiGroupType.cpp @@ -19,6 +19,8 @@ EmojiGroupType get_emoji_group_type(const td_api::object_ptr &type); diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 38ff04d9a..616224fca 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -1463,6 +1463,9 @@ class GetEmojiGroupsQuery final : public Td::ResultHandler { case EmojiGroupType::ProfilePhoto: send_query(G()->net_query_creator().create(telegram_api::messages_getEmojiProfilePhotoGroups(hash))); break; + case EmojiGroupType::Combined: + send_query(G()->net_query_creator().create(telegram_api::messages_getEmojiStickerGroups(hash))); + break; default: UNREACHABLE(); } @@ -1475,6 +1478,9 @@ class GetEmojiGroupsQuery final : public Td::ResultHandler { static_assert(std::is_same::value, ""); + static_assert(std::is_same::value, + ""); auto result_ptr = fetch_result(packet); if (result_ptr.is_error()) { return on_error(result_ptr.move_as_error()); diff --git a/td/telegram/cli.cpp b/td/telegram/cli.cpp index 928d91a5c..2db9f5c3a 100644 --- a/td/telegram/cli.cpp +++ b/td/telegram/cli.cpp @@ -3632,7 +3632,7 @@ class CliClient final : public Actor { send_request(td_api::make_object(args, vector())); } else if (op == "gkeru") { send_request(td_api::make_object(args, vector{"ru_RU"})); - } else if (op == "gec" || op == "geces" || op == "geccp") { + } else if (op == "gec" || op == "geces" || op == "geccp" || op == "gecc") { auto type = [&]() -> td_api::object_ptr { if (op == "geces") { return td_api::make_object(); @@ -3640,6 +3640,9 @@ class CliClient final : public Actor { if (op == "geccp") { return td_api::make_object(); } + if (op == "gecc") { + return td_api::make_object(); + } return td_api::make_object(); }(); send_request(td_api::make_object(std::move(type)));