From a165305968b2feeda6c52575146aa0240b99bf1b Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 15 Mar 2019 22:09:42 +0300 Subject: [PATCH] Set local online on some message history reads. GitOrigin-RevId: 140ed8921bb53c6aabbe5acfe25147854b2f9b53 --- td/telegram/MessagesManager.cpp | 8 ++++++++ td/telegram/UpdatesManager.cpp | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index a91382e21..a01457386 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -9333,6 +9333,14 @@ void MessagesManager::read_secret_chat_outbox(SecretChatId secret_chat_id, int32 if (d == nullptr) { return; } + + if (read_date > 0) { + auto user_id = td_->contacts_manager_->get_secret_chat_user_id(secret_chat_id); + if (user_id.is_valid()) { + td_->contacts_manager_->on_update_user_local_was_online(user_id, read_date); + } + } + // TODO: protect with logevent suffix_load_till_date( d, up_to_date, diff --git a/td/telegram/UpdatesManager.cpp b/td/telegram/UpdatesManager.cpp index bf3650836..de9dae5c7 100644 --- a/td/telegram/UpdatesManager.cpp +++ b/td/telegram/UpdatesManager.cpp @@ -1189,6 +1189,18 @@ void UpdatesManager::on_pending_updates(vector 0 && updates.size() == 1 && updates[0] != nullptr && + updates[0]->get_id() == telegram_api::updateReadHistoryOutbox::ID) { + auto update = static_cast(updates[0].get()); + DialogId dialog_id(update->peer_); + if (dialog_id.get_type() == DialogType::User) { + auto user_id = dialog_id.get_user_id(); + if (user_id.is_valid()) { + td_->contacts_manager_->on_update_user_local_was_online(user_id, date); + } + } + } + for (auto &update : updates) { if (update != nullptr) { LOG(INFO) << "Receive from " << source << " pending " << to_string(update);