Add MessagesManager::delete_update_message_id method.
This commit is contained in:
parent
960aae0ae6
commit
c3e4560811
@ -12810,6 +12810,23 @@ MessageId MessagesManager::find_old_message_id(DialogId dialog_id, MessageId mes
|
|||||||
return MessageId();
|
return MessageId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MessagesManager::delete_update_message_id(DialogId dialog_id, MessageId message_id) {
|
||||||
|
if (message_id.is_scheduled()) {
|
||||||
|
CHECK(message_id.is_scheduled_server());
|
||||||
|
auto dialog_it = update_scheduled_message_ids_.find(dialog_id);
|
||||||
|
CHECK(dialog_it != update_scheduled_message_ids_.end());
|
||||||
|
auto erased_count = dialog_it->second.erase(message_id.get_scheduled_server_message_id());
|
||||||
|
CHECK(erased_count > 0);
|
||||||
|
if (dialog_it->second.empty()) {
|
||||||
|
update_scheduled_message_ids_.erase(dialog_it);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
CHECK(message_id.is_server());
|
||||||
|
auto erased_count = update_message_ids_.erase(FullMessageId(dialog_id, message_id));
|
||||||
|
CHECK(erased_count > 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
FullMessageId MessagesManager::on_get_message(tl_object_ptr<telegram_api::Message> message_ptr, bool from_update,
|
FullMessageId MessagesManager::on_get_message(tl_object_ptr<telegram_api::Message> message_ptr, bool from_update,
|
||||||
bool is_channel_message, bool is_scheduled, bool have_previous,
|
bool is_channel_message, bool is_scheduled, bool have_previous,
|
||||||
bool have_next, const char *source) {
|
bool have_next, const char *source) {
|
||||||
@ -12865,17 +12882,7 @@ FullMessageId MessagesManager::on_get_message(MessageInfo &&message_info, bool f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message_id.is_scheduled()) {
|
delete_update_message_id(dialog_id, message_id);
|
||||||
CHECK(message_id.is_scheduled_server());
|
|
||||||
auto dialog_it = update_scheduled_message_ids_.find(dialog_id);
|
|
||||||
CHECK(dialog_it != update_scheduled_message_ids_.end());
|
|
||||||
dialog_it->second.erase(message_id.get_scheduled_server_message_id());
|
|
||||||
if (dialog_it->second.empty()) {
|
|
||||||
update_scheduled_message_ids_.erase(dialog_it);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
update_message_ids_.erase(FullMessageId(dialog_id, message_id));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!new_message->is_outgoing && dialog_id != get_my_dialog_id()) {
|
if (!new_message->is_outgoing && dialog_id != get_my_dialog_id()) {
|
||||||
// sent message is not from me
|
// sent message is not from me
|
||||||
|
@ -1721,6 +1721,8 @@ class MessagesManager : public Actor {
|
|||||||
|
|
||||||
MessageId find_old_message_id(DialogId dialog_id, MessageId message_id) const;
|
MessageId find_old_message_id(DialogId dialog_id, MessageId message_id) const;
|
||||||
|
|
||||||
|
void delete_update_message_id(DialogId dialog_id, MessageId message_id);
|
||||||
|
|
||||||
FullMessageId on_get_message(MessageInfo &&message_info, bool from_update, bool is_channel_message,
|
FullMessageId on_get_message(MessageInfo &&message_info, bool from_update, bool is_channel_message,
|
||||||
bool have_previous, bool have_next, const char *source);
|
bool have_previous, bool have_next, const char *source);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user