From 7da29e17d636f7dc8609ed88f3e915710daa4bd6 Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 25 Mar 2022 14:17:09 +0300 Subject: [PATCH] Add empty AttachMenuManager. --- CMakeLists.txt | 2 ++ SplitSource.php | 1 + td/telegram/AttachMenuManager.cpp | 27 +++++++++++++++++++++++++ td/telegram/AttachMenuManager.h | 33 +++++++++++++++++++++++++++++++ td/telegram/Td.cpp | 9 +++++++++ td/telegram/Td.h | 3 +++ 6 files changed, 75 insertions(+) create mode 100644 td/telegram/AttachMenuManager.cpp create mode 100644 td/telegram/AttachMenuManager.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 5fc7084df..565f6a8a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -278,6 +278,7 @@ set(TDLIB_SOURCE td/telegram/Account.cpp td/telegram/AnimationsManager.cpp + td/telegram/AttachMenuManager.cpp td/telegram/AudiosManager.cpp td/telegram/AuthManager.cpp td/telegram/AutoDownloadSettings.cpp @@ -465,6 +466,7 @@ set(TDLIB_SOURCE td/telegram/Account.h td/telegram/AffectedHistory.h td/telegram/AnimationsManager.h + td/telegram/AttachMenuManager.h td/telegram/AudiosManager.h td/telegram/AuthManager.h td/telegram/AutoDownloadSettings.h diff --git a/SplitSource.php b/SplitSource.php index badd85f7e..5ce1d45f1 100644 --- a/SplitSource.php +++ b/SplitSource.php @@ -277,6 +277,7 @@ function split_file($file, $chunks, $undo) { if (!preg_match('/Td::~?Td/', $new_content)) { // destructor Td::~Td needs to see definitions of all forward-declared classes $td_methods = array( 'animations_manager[_(-][^.]|AnimationsManager[^;>]' => "AnimationsManager", + 'attach_menu_manager[_(-][^.]|AttachMenuManager[^;>]' => "AttachMenuManager", 'audios_manager[_(-][^.]|AudiosManager' => "AudiosManager", 'auth_manager[_(-][^.]|AuthManager' => 'AuthManager', 'background_manager[_(-][^.]|BackgroundManager' => "BackgroundManager", diff --git a/td/telegram/AttachMenuManager.cpp b/td/telegram/AttachMenuManager.cpp new file mode 100644 index 000000000..505b8caff --- /dev/null +++ b/td/telegram/AttachMenuManager.cpp @@ -0,0 +1,27 @@ +// +// 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/AttachMenuManager.h" + +#include "td/telegram/AuthManager.h" +#include "td/telegram/Td.h" + +namespace td { + +AttachMenuManager::AttachMenuManager(Td *td, ActorShared<> parent) : td_(td), parent_(std::move(parent)) { +} + +void AttachMenuManager::tear_down() { + parent_.reset(); +} + +void AttachMenuManager::get_current_state(vector> &updates) const { + if (td_->auth_manager_->is_bot()) { + return; + } +} + +} // namespace td diff --git a/td/telegram/AttachMenuManager.h b/td/telegram/AttachMenuManager.h new file mode 100644 index 000000000..94398d896 --- /dev/null +++ b/td/telegram/AttachMenuManager.h @@ -0,0 +1,33 @@ +// +// 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) +// +#pragma once + +#include "td/telegram/td_api.h" + +#include "td/actor/actor.h" + +#include "td/utils/common.h" + +namespace td { + +class Td; + +class AttachMenuManager final : public Actor { + public: + AttachMenuManager(Td *td, ActorShared<> parent); + + void get_current_state(vector> &updates) const; + + private: + + void tear_down() final; + + Td *td_; + ActorShared<> parent_; +}; + +} // namespace td diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 8b16c8d5c..8ff56a89e 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -8,6 +8,7 @@ #include "td/telegram/Account.h" #include "td/telegram/AnimationsManager.h" +#include "td/telegram/AttachMenuManager.h" #include "td/telegram/AudiosManager.h" #include "td/telegram/AuthManager.h" #include "td/telegram/AutoDownloadSettings.h" @@ -3320,6 +3321,8 @@ void Td::dec_actor_refcnt() { Timer timer; animations_manager_.reset(); LOG(DEBUG) << "AnimationsManager was cleared" << timer; + attach_menu_manager_.reset(); + LOG(DEBUG) << "AttachMenuManager was cleared" << timer; audios_manager_.reset(); LOG(DEBUG) << "AudiosManager was cleared" << timer; auth_manager_.reset(); @@ -3514,6 +3517,8 @@ void Td::clear() { // clear actors which are unique pointers animations_manager_actor_.reset(); LOG(DEBUG) << "AnimationsManager actor was cleared" << timer; + attach_menu_manager_actor_.reset(); + LOG(DEBUG) << "AttachMenuManager actor was cleared" << timer; auth_manager_actor_.reset(); LOG(DEBUG) << "AuthManager actor was cleared" << timer; background_manager_actor_.reset(); @@ -3983,6 +3988,8 @@ void Td::init_managers() { animations_manager_ = make_unique(this, create_reference()); animations_manager_actor_ = register_actor("AnimationsManager", animations_manager_.get()); G()->set_animations_manager(animations_manager_actor_.get()); + attach_menu_manager_ = make_unique(this, create_reference()); + attach_menu_manager_actor_ = register_actor("AttachMenuManager", attach_menu_manager_.get()); background_manager_ = make_unique(this, create_reference()); background_manager_actor_ = register_actor("BackgroundManager", background_manager_.get()); G()->set_background_manager(background_manager_actor_.get()); @@ -4417,6 +4424,8 @@ void Td::on_request(uint64 id, const td_api::getCurrentState &request) { animations_manager_->get_current_state(updates); + attach_menu_manager_->get_current_state(updates); + stickers_manager_->get_current_state(updates); messages_manager_->get_current_state(updates); diff --git a/td/telegram/Td.h b/td/telegram/Td.h index 4c8d8ceae..ee7e3c712 100644 --- a/td/telegram/Td.h +++ b/td/telegram/Td.h @@ -38,6 +38,7 @@ namespace td { class AnimationsManager; +class AttachMenuManager; class AudiosManager; class AuthManager; class BackgroundManager; @@ -138,6 +139,8 @@ class Td final : public Actor { unique_ptr animations_manager_; ActorOwn animations_manager_actor_; + unique_ptr attach_menu_manager_; + ActorOwn attach_menu_manager_actor_; unique_ptr auth_manager_; ActorOwn auth_manager_actor_; unique_ptr background_manager_;