diff options
| -rw-r--r-- | td/telegram/MessagesManager.cpp | 10 | ||||
| -rw-r--r-- | td/telegram/RepliedMessageInfo.cpp | 7 | ||||
| -rw-r--r-- | td/telegram/RepliedMessageInfo.h | 2 |
3 files changed, 12 insertions, 7 deletions
diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index b2eaae27e..01d0dd6b5 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -20887,7 +20887,7 @@ unique_ptr<MessagesManager::Message> MessagesManager::create_message_to_send( m->send_date = G()->unix_time(); m->date = is_scheduled ? options.schedule_date : m->send_date; m->schedule_repeat_period = options.schedule_repeat_period; - m->replied_message_info = RepliedMessageInfo(td_, input_reply_to, message_topic); + m->replied_message_info = RepliedMessageInfo(td_, input_reply_to, dialog_id, message_topic); m->reply_to_story_full_id = input_reply_to.get_story_full_id(); m->input_reply_to = std::move(input_reply_to); m->reply_to_random_id = reply_to_random_id; @@ -25405,7 +25405,7 @@ Result<MessageId> MessagesManager::add_local_message( m->sender_user_id = sender_user_id; m->sender_dialog_id = sender_dialog_id; m->date = G()->unix_time(); - m->replied_message_info = RepliedMessageInfo(td_, input_reply_to, MessageTopic()); + m->replied_message_info = RepliedMessageInfo(td_, input_reply_to, dialog_id, MessageTopic()); m->reply_to_story_full_id = input_reply_to.get_story_full_id(); if (!message_id.is_scheduled()) { auto reply_to_message_id = input_reply_to.get_same_chat_reply_to_message_id(); @@ -27637,13 +27637,13 @@ void MessagesManager::check_send_message_result(int64 random_id, DialogId dialog void MessagesManager::update_reply_to_message_id(DialogId dialog_id, MessageId old_message_id, MessageId new_message_id, bool have_new_message, const char *source) { - LOG(DEBUG) << "Update replies of " << MessageFullId{dialog_id, old_message_id} << " to " << new_message_id << " from " - << source; MessageFullId old_message_full_id(dialog_id, old_message_id); auto it = replied_yet_unsent_messages_.find(old_message_full_id); if (it == replied_yet_unsent_messages_.end()) { return; } + LOG(DEBUG) << "Update replies to " << MessageFullId{dialog_id, old_message_id} << " to its new " << new_message_id + << " from " << source; CHECK(old_message_id.is_yet_unsent()); CHECK(new_message_id == MessageId() || new_message_id.is_valid() || new_message_id.is_valid_scheduled()); @@ -35653,7 +35653,7 @@ void MessagesManager::set_message_reply(const Dialog *d, Message *m, MessageInpu if (is_message_in_dialog) { unregister_message_reply(d->dialog_id, m); } - m->replied_message_info = RepliedMessageInfo(td_, input_reply_to, get_message_topic(d->dialog_id, m)); + m->replied_message_info = RepliedMessageInfo(td_, input_reply_to, d->dialog_id, get_message_topic(d->dialog_id, m)); m->reply_to_story_full_id = StoryFullId(); m->reply_to_random_id = get_message_reply_to_random_id(d, m); if (!m->message_id.is_any_server()) { diff --git a/td/telegram/RepliedMessageInfo.cpp b/td/telegram/RepliedMessageInfo.cpp index d8bc43e2b..188101c71 100644 --- a/td/telegram/RepliedMessageInfo.cpp +++ b/td/telegram/RepliedMessageInfo.cpp @@ -139,8 +139,13 @@ RepliedMessageInfo::RepliedMessageInfo(Td *td, tl_object_ptr<telegram_api::messa } } -RepliedMessageInfo::RepliedMessageInfo(Td *td, const MessageInputReplyTo &input_reply_to, const MessageTopic &topic) { +RepliedMessageInfo::RepliedMessageInfo(Td *td, const MessageInputReplyTo &input_reply_to, DialogId dialog_id, + const MessageTopic &topic) { if (!input_reply_to.message_id_.is_valid() && !input_reply_to.message_id_.is_valid_scheduled()) { + if (input_reply_to.ephemeral_message_id_.is_valid()) { + message_id_ = td->messages_manager_->get_message_id_of_ephemeral_message_id(dialog_id, + input_reply_to.ephemeral_message_id_); + } return; } message_id_ = input_reply_to.message_id_; diff --git a/td/telegram/RepliedMessageInfo.h b/td/telegram/RepliedMessageInfo.h index 447b4922a..41f85e533 100644 --- a/td/telegram/RepliedMessageInfo.h +++ b/td/telegram/RepliedMessageInfo.h @@ -62,7 +62,7 @@ class RepliedMessageInfo { RepliedMessageInfo(Td *td, tl_object_ptr<telegram_api::messageReplyHeader> &&reply_header, DialogId dialog_id, MessageId message_id, int32 date); - RepliedMessageInfo(Td *td, const MessageInputReplyTo &input_reply_to, const MessageTopic &topic); + RepliedMessageInfo(Td *td, const MessageInputReplyTo &input_reply_to, DialogId dialog_id, const MessageTopic &topic); RepliedMessageInfo clone(Td *td) const; |
