diff --git a/CMakeLists.txt b/CMakeLists.txt index d879a73f1..d027bfed9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -330,6 +330,7 @@ set(TDLIB_SOURCE td/telegram/DownloadManager.cpp td/telegram/DownloadManagerCallback.cpp td/telegram/DraftMessage.cpp + td/telegram/EmojiStatus.cpp td/telegram/FileReferenceManager.cpp td/telegram/files/FileBitmask.cpp td/telegram/files/FileDb.cpp diff --git a/td/telegram/EmojiStatus.cpp b/td/telegram/EmojiStatus.cpp new file mode 100644 index 000000000..0cb8f2d64 --- /dev/null +++ b/td/telegram/EmojiStatus.cpp @@ -0,0 +1,42 @@ +// +// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2022 +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +#include "td/telegram/EmojiStatus.h" + +namespace td { + +EmojiStatus::EmojiStatus(const td_api::object_ptr &premium_status) + : custom_emoji_id_(premium_status != nullptr ? premium_status->custom_emoji_id_ : 0) { +} + +EmojiStatus::EmojiStatus(tl_object_ptr &&emoji_status) { + if (emoji_status != nullptr && emoji_status->get_id() == telegram_api::emojiStatus::ID) { + custom_emoji_id_ = static_cast(emoji_status.get())->document_id_; + } +} + +tl_object_ptr EmojiStatus::get_input_emoji_status() const { + if (is_empty()) { + return make_tl_object(); + } + return make_tl_object(custom_emoji_id_); +} + +td_api::object_ptr EmojiStatus::get_premium_status_object() const { + if (is_empty()) { + return nullptr; + } + return td_api::make_object(custom_emoji_id_); +} + +StringBuilder &operator<<(StringBuilder &string_builder, const EmojiStatus &emoji_status) { + if (emoji_status.is_empty()) { + return string_builder << "DefaultProfileBadge"; + } + return string_builder << "CustomEmoji " << emoji_status.custom_emoji_id_; +} + +} // namespace td diff --git a/td/telegram/EmojiStatus.h b/td/telegram/EmojiStatus.h index f91257273..7f8134c55 100644 --- a/td/telegram/EmojiStatus.h +++ b/td/telegram/EmojiStatus.h @@ -25,29 +25,13 @@ class EmojiStatus { public: EmojiStatus() = default; - explicit EmojiStatus(const td_api::object_ptr &premium_status) - : custom_emoji_id_(premium_status != nullptr ? premium_status->custom_emoji_id_ : 0) { - } + explicit EmojiStatus(const td_api::object_ptr &premium_status); - explicit EmojiStatus(tl_object_ptr &&emoji_status) { - if (emoji_status != nullptr && emoji_status->get_id() == telegram_api::emojiStatus::ID) { - custom_emoji_id_ = static_cast(emoji_status.get())->document_id_; - } - } + explicit EmojiStatus(tl_object_ptr &&emoji_status); - tl_object_ptr get_input_emoji_status() const { - if (is_empty()) { - return make_tl_object(); - } - return make_tl_object(custom_emoji_id_); - } + tl_object_ptr get_input_emoji_status() const; - td_api::object_ptr get_premium_status_object() const { - if (is_empty()) { - return nullptr; - } - return td_api::make_object(custom_emoji_id_); - } + td_api::object_ptr get_premium_status_object() const; bool is_empty() const { return custom_emoji_id_ == 0; @@ -72,11 +56,6 @@ inline bool operator!=(const EmojiStatus &lhs, const EmojiStatus &rhs) { return !(lhs == rhs); } -inline StringBuilder &operator<<(StringBuilder &string_builder, const EmojiStatus &emoji_status) { - if (emoji_status.is_empty()) { - return string_builder << "DefaultProfileBadge"; - } - return string_builder << "CustomEmoji " << emoji_status.custom_emoji_id_; -} +StringBuilder &operator<<(StringBuilder &string_builder, const EmojiStatus &emoji_status); } // namespace td