Send updateChatLastMessage when last chat message is changed.
GitOrigin-RevId: 35daed67ef38c3cd3b5f9f46a928614f9a94b172
This commit is contained in:
parent
b839563484
commit
62d8e1fd40
@ -17758,12 +17758,15 @@ void MessagesManager::send_update_chat_draft_message(const Dialog *d) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MessagesManager::send_update_chat_last_message(Dialog *d, const char *source) {
|
void MessagesManager::send_update_chat_last_message(Dialog *d, const char *source) {
|
||||||
CHECK(d != nullptr);
|
|
||||||
update_dialog_pos(d, false, source, false);
|
update_dialog_pos(d, false, source, false);
|
||||||
|
send_update_chat_last_message_impl(d, source);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MessagesManager::send_update_chat_last_message_impl(const Dialog *d, const char *source) const {
|
||||||
|
CHECK(d != nullptr);
|
||||||
LOG(INFO) << "Send updateChatLastMessage in " << d->dialog_id << " to " << d->last_message_id << " from " << source;
|
LOG(INFO) << "Send updateChatLastMessage in " << d->dialog_id << " to " << d->last_message_id << " from " << source;
|
||||||
auto update = make_tl_object<td_api::updateChatLastMessage>(
|
auto update = make_tl_object<td_api::updateChatLastMessage>(
|
||||||
d->dialog_id.get(), get_message_object(d->dialog_id, get_message_force(d, d->last_message_id)),
|
d->dialog_id.get(), get_message_object(d->dialog_id, get_message(d, d->last_message_id)),
|
||||||
DialogDate(d->order, d->dialog_id) <= last_dialog_date_ ? d->order : 0);
|
DialogDate(d->order, d->dialog_id) <= last_dialog_date_ ? d->order : 0);
|
||||||
send_closure(G()->td(), &Td::send_update, std::move(update));
|
send_closure(G()->td(), &Td::send_update, std::move(update));
|
||||||
}
|
}
|
||||||
@ -21286,6 +21289,10 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq
|
|||||||
void MessagesManager::on_message_changed(const Dialog *d, const Message *m, const char *source) {
|
void MessagesManager::on_message_changed(const Dialog *d, const Message *m, const char *source) {
|
||||||
CHECK(d != nullptr);
|
CHECK(d != nullptr);
|
||||||
CHECK(m != nullptr);
|
CHECK(m != nullptr);
|
||||||
|
if (m->message_id == d->last_message_id) {
|
||||||
|
send_update_chat_last_message_impl(d, source);
|
||||||
|
}
|
||||||
|
|
||||||
if (m->message_id == d->last_database_message_id) {
|
if (m->message_id == d->last_database_message_id) {
|
||||||
on_dialog_updated(d->dialog_id, source);
|
on_dialog_updated(d->dialog_id, source);
|
||||||
}
|
}
|
||||||
@ -22524,6 +22531,7 @@ int64 MessagesManager::get_next_pinned_dialog_order() {
|
|||||||
|
|
||||||
void MessagesManager::update_dialog_pos(Dialog *d, bool remove_from_dialog_list, const char *source,
|
void MessagesManager::update_dialog_pos(Dialog *d, bool remove_from_dialog_list, const char *source,
|
||||||
bool need_send_update_chat_order) {
|
bool need_send_update_chat_order) {
|
||||||
|
CHECK(d != nullptr);
|
||||||
LOG(INFO) << "Trying to update dialog " << d->dialog_id << " order from " << source;
|
LOG(INFO) << "Trying to update dialog " << d->dialog_id << " order from " << source;
|
||||||
auto dialog_type = d->dialog_id.get_type();
|
auto dialog_type = d->dialog_id.get_type();
|
||||||
|
|
||||||
|
@ -2047,6 +2047,8 @@ class MessagesManager : public Actor {
|
|||||||
|
|
||||||
void send_update_chat_last_message(Dialog *d, const char *source);
|
void send_update_chat_last_message(Dialog *d, const char *source);
|
||||||
|
|
||||||
|
void send_update_chat_last_message_impl(const Dialog *d, const char *source) const;
|
||||||
|
|
||||||
void send_update_chat_read_inbox(const Dialog *d, bool force, const char *source);
|
void send_update_chat_read_inbox(const Dialog *d, bool force, const char *source);
|
||||||
|
|
||||||
void send_update_chat_read_outbox(const Dialog *d);
|
void send_update_chat_read_outbox(const Dialog *d);
|
||||||
|
Reference in New Issue
Block a user