Improve updating of reply info.
This commit is contained in:
parent
fe7ea9bac9
commit
2d2446ae77
@ -118,10 +118,6 @@ bool MessageReplyInfo::update_max_message_ids(MessageId other_max_message_id,
|
|||||||
MessageId other_last_read_inbox_message_id,
|
MessageId other_last_read_inbox_message_id,
|
||||||
MessageId other_last_read_outbox_message_id) {
|
MessageId other_last_read_outbox_message_id) {
|
||||||
bool result = false;
|
bool result = false;
|
||||||
if (other_max_message_id > max_message_id) {
|
|
||||||
max_message_id = other_max_message_id;
|
|
||||||
result = true;
|
|
||||||
}
|
|
||||||
if (other_last_read_inbox_message_id > last_read_inbox_message_id) {
|
if (other_last_read_inbox_message_id > last_read_inbox_message_id) {
|
||||||
last_read_inbox_message_id = other_last_read_inbox_message_id;
|
last_read_inbox_message_id = other_last_read_inbox_message_id;
|
||||||
result = true;
|
result = true;
|
||||||
@ -130,13 +126,18 @@ bool MessageReplyInfo::update_max_message_ids(MessageId other_max_message_id,
|
|||||||
last_read_outbox_message_id = other_last_read_outbox_message_id;
|
last_read_outbox_message_id = other_last_read_outbox_message_id;
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
if (last_read_inbox_message_id > max_message_id) {
|
if (other_max_message_id.is_valid() ||
|
||||||
max_message_id = last_read_inbox_message_id;
|
(!other_last_read_inbox_message_id.is_valid() && !other_last_read_outbox_message_id.is_valid())) {
|
||||||
result = true;
|
if (other_max_message_id < last_read_inbox_message_id) {
|
||||||
}
|
other_max_message_id = last_read_inbox_message_id;
|
||||||
if (last_read_outbox_message_id > max_message_id) {
|
}
|
||||||
max_message_id = last_read_outbox_message_id;
|
if (other_max_message_id < last_read_outbox_message_id) {
|
||||||
result = true;
|
other_max_message_id = last_read_outbox_message_id;
|
||||||
|
}
|
||||||
|
if (other_max_message_id != max_message_id) {
|
||||||
|
max_message_id = other_max_message_id;
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -21428,7 +21428,7 @@ Status MessagesManager::view_messages(DialogId dialog_id, MessageId top_thread_m
|
|||||||
return Status::OK();
|
return Status::OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (top_thread_message_id.is_valid()) {
|
if (top_thread_message_id.is_valid() && max_message_id.is_valid()) {
|
||||||
MessageId prev_last_read_inbox_message_id;
|
MessageId prev_last_read_inbox_message_id;
|
||||||
MessageId max_thread_message_id;
|
MessageId max_thread_message_id;
|
||||||
Message *top_m = get_message_force(d, top_thread_message_id, "view_messages 2");
|
Message *top_m = get_message_force(d, top_thread_message_id, "view_messages 2");
|
||||||
|
@ -2939,22 +2939,32 @@ void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateChannelAvailabl
|
|||||||
|
|
||||||
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateReadChannelDiscussionInbox> update,
|
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateReadChannelDiscussionInbox> update,
|
||||||
Promise<Unit> &&promise) {
|
Promise<Unit> &&promise) {
|
||||||
td_->messages_manager_->on_update_read_message_comments(
|
auto last_read_inbox_message_id = MessageId(ServerMessageId(update->read_max_id_));
|
||||||
DialogId(ChannelId(update->channel_id_)), MessageId(ServerMessageId(update->top_msg_id_)), MessageId(),
|
if (!last_read_inbox_message_id.is_valid()) {
|
||||||
MessageId(ServerMessageId(update->read_max_id_)), MessageId());
|
LOG(ERROR) << "Receive " << to_string(update);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
td_->messages_manager_->on_update_read_message_comments(DialogId(ChannelId(update->channel_id_)),
|
||||||
|
MessageId(ServerMessageId(update->top_msg_id_)), MessageId(),
|
||||||
|
last_read_inbox_message_id, MessageId());
|
||||||
if ((update->flags_ & telegram_api::updateReadChannelDiscussionInbox::BROADCAST_ID_MASK) != 0) {
|
if ((update->flags_ & telegram_api::updateReadChannelDiscussionInbox::BROADCAST_ID_MASK) != 0) {
|
||||||
td_->messages_manager_->on_update_read_message_comments(
|
td_->messages_manager_->on_update_read_message_comments(DialogId(ChannelId(update->broadcast_id_)),
|
||||||
DialogId(ChannelId(update->broadcast_id_)), MessageId(ServerMessageId(update->broadcast_post_)), MessageId(),
|
MessageId(ServerMessageId(update->broadcast_post_)),
|
||||||
MessageId(ServerMessageId(update->read_max_id_)), MessageId());
|
MessageId(), last_read_inbox_message_id, MessageId());
|
||||||
}
|
}
|
||||||
promise.set_value(Unit());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateReadChannelDiscussionOutbox> update,
|
void UpdatesManager::on_update(tl_object_ptr<telegram_api::updateReadChannelDiscussionOutbox> update,
|
||||||
Promise<Unit> &&promise) {
|
Promise<Unit> &&promise) {
|
||||||
td_->messages_manager_->on_update_read_message_comments(
|
auto last_read_outbox_message_id = MessageId(ServerMessageId(update->read_max_id_));
|
||||||
DialogId(ChannelId(update->channel_id_)), MessageId(ServerMessageId(update->top_msg_id_)), MessageId(),
|
if (!last_read_outbox_message_id.is_valid()) {
|
||||||
MessageId(), MessageId(ServerMessageId(update->read_max_id_)));
|
LOG(ERROR) << "Receive " << to_string(update);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
td_->messages_manager_->on_update_read_message_comments(DialogId(ChannelId(update->channel_id_)),
|
||||||
|
MessageId(ServerMessageId(update->top_msg_id_)), MessageId(),
|
||||||
|
MessageId(), last_read_outbox_message_id);
|
||||||
promise.set_value(Unit());
|
promise.set_value(Unit());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user