From 362fc331c78d4ba94f6e6eecd2bbe4ed96d4d89e Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 28 Sep 2018 19:22:30 +0300 Subject: [PATCH] Add get_message_content_deleted_user_id. GitOrigin-RevId: fe1c4db7920238eb623d5557277472af93523ca1 --- td/telegram/MessagesManager.cpp | 16 ++++++++++++---- td/telegram/MessagesManager.h | 2 ++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index d598f4b2..fd1b94f6 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -23385,6 +23385,15 @@ MessageId MessagesManager::get_message_content_pinned_message_id(const MessageCo } } +UserId MessagesManager::get_message_content_deleted_user_id(const MessageContent *content) { + switch (content->get_type()) { + case MessageContentType::ChatDeleteUser: + return static_cast(content)->user_id; + default: + return UserId(); + } +} + MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, unique_ptr message, bool from_update, bool *need_update, bool *need_update_dialog_pos, const char *source) { @@ -23828,10 +23837,9 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq } } - if (!td_->auth_manager_->is_bot() && from_update && d->reply_markup_message_id != MessageId() && - message_content_type == MessageContentType::ChatDeleteUser) { - auto deleted_user_id = static_cast(message->content.get())->user_id; - if (td_->contacts_manager_->is_user_bot(deleted_user_id)) { + if (!td_->auth_manager_->is_bot() && from_update && d->reply_markup_message_id != MessageId()) { + auto deleted_user_id = get_message_content_deleted_user_id(message->content.get()); + if (deleted_user_id.is_valid() && td_->contacts_manager_->is_user_bot(deleted_user_id)) { const Message *old_message = get_message_force(d, d->reply_markup_message_id); if (old_message == nullptr || old_message->sender_user_id == deleted_user_id) { set_dialog_reply_markup(d, MessageId()); diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h index 692ce9b2..8660bdf0 100644 --- a/td/telegram/MessagesManager.h +++ b/td/telegram/MessagesManager.h @@ -2253,6 +2253,8 @@ class MessagesManager : public Actor { static MessageId get_message_content_pinned_message_id(const MessageContent *content); + static UserId get_message_content_deleted_user_id(const MessageContent *content); + Message *add_message_to_dialog(DialogId dialog_id, unique_ptr message, bool from_update, bool *need_update, bool *need_update_dialog_pos, const char *source);