From 1dd054d8963253a335f438e2bf5e49c855ba9fc1 Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 26 Oct 2021 16:50:18 +0300 Subject: [PATCH] Add const get_animated_emoji_object. --- td/telegram/StickersManager.cpp | 12 +++++++++--- td/telegram/StickersManager.h | 3 +++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 0f0636aeb..d88c6a17e 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -2014,12 +2014,18 @@ vector> StickersManager::get_color_ td_api::object_ptr StickersManager::get_animated_emoji_object(const string &emoji) { auto it = emoji_messages_.find(emoji); - auto animated_sticker = - it != emoji_messages_.end() ? it->second.animated_emoji_sticker : get_animated_emoji_sticker(emoji); + if (it == emoji_messages_.end()) { + return get_animated_emoji_object(get_animated_emoji_sticker(emoji), get_animated_emoji_sound_file_id(emoji)); + } else { + return get_animated_emoji_object(it->second.animated_emoji_sticker, it->second.sound_file_id); + } +} + +td_api::object_ptr StickersManager::get_animated_emoji_object( + std::pair animated_sticker, FileId sound_file_id) const { if (!animated_sticker.first.is_valid()) { return nullptr; } - auto sound_file_id = it != emoji_messages_.end() ? it->second.sound_file_id : get_animated_emoji_sound_file_id(emoji); return td_api::make_object( get_sticker_object(animated_sticker.first, true), get_color_replacements_object(animated_sticker.second), sound_file_id.is_valid() ? td_->file_manager_->get_file_object(sound_file_id) : nullptr); diff --git a/td/telegram/StickersManager.h b/td/telegram/StickersManager.h index 32557e508..ec6090681 100644 --- a/td/telegram/StickersManager.h +++ b/td/telegram/StickersManager.h @@ -620,6 +620,9 @@ class StickersManager final : public Actor { FileId get_animated_emoji_sound_file_id(const string &emoji) const; + td_api::object_ptr get_animated_emoji_object(std::pair animated_sticker, + FileId sound_file_id) const; + void try_update_animated_emoji_messages(); static int get_emoji_number(Slice emoji);