From b7a779db3b8e511275b20dacf634abb0a7e3478c Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 9 Oct 2018 17:12:10 +0300 Subject: [PATCH] Add get_update_unread_*_count_object functions. GitOrigin-RevId: 9f5c53acaad72ad7288882691232f7e7c85d8127 --- td/telegram/MessagesManager.cpp | 38 +++++++++++++++++++++------------ td/telegram/MessagesManager.h | 4 ++++ 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index fd484d67..836ada74 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -17415,8 +17415,7 @@ void MessagesManager::send_update_unread_message_count(DialogId dialog_id, bool have_postponed_unread_message_count_update_ = false; LOG(INFO) << "Send updateUnreadMessageCount to " << unread_message_total_count_ << '/' << unread_unmuted_count << " from " << source << " and " << dialog_id; - send_closure(G()->td(), &Td::send_update, - make_tl_object(unread_message_total_count_, unread_unmuted_count)); + send_closure(G()->td(), &Td::send_update, get_update_unread_message_count_object()); } } } @@ -17460,10 +17459,7 @@ void MessagesManager::send_update_unread_chat_count(DialogId dialog_id, bool for have_postponed_unread_chat_count_update_ = true; } else { have_postponed_unread_chat_count_update_ = false; - send_closure( - G()->td(), &Td::send_update, - make_tl_object(unread_dialog_total_count_, unread_unmuted_count, - unread_dialog_marked_count_, unread_unmuted_marked_count)); + send_closure(G()->td(), &Td::send_update, get_update_unread_chat_count_object()); } } } @@ -23101,20 +23097,34 @@ void MessagesManager::set_sponsored_dialog_id(DialogId dialog_id) { } } +td_api::object_ptr MessagesManager::get_update_unread_message_count_object() const { + CHECK(is_message_unread_count_inited_); + int32 unread_unmuted_count = unread_message_total_count_ - unread_message_muted_count_; + CHECK(unread_message_total_count_ >= 0); + CHECK(unread_unmuted_count >= 0); + return td_api::make_object(unread_message_total_count_, unread_unmuted_count); +} + +td_api::object_ptr MessagesManager::get_update_unread_chat_count_object() const { + CHECK(is_dialog_unread_count_inited_); + int32 unread_unmuted_count = unread_dialog_total_count_ - unread_dialog_muted_count_; + int32 unread_unmuted_marked_count = unread_dialog_marked_count_ - unread_dialog_muted_marked_count_; + CHECK(unread_dialog_total_count_ >= 0); + CHECK(unread_unmuted_count >= 0); + CHECK(unread_dialog_marked_count_ >= 0); + CHECK(unread_unmuted_marked_count >= 0); + return td_api::make_object(unread_dialog_total_count_, unread_unmuted_count, + unread_dialog_marked_count_, unread_unmuted_marked_count); +} + void MessagesManager::get_current_state(vector> &updates) const { if (!td_->auth_manager_->is_bot()) { if (G()->parameters().use_message_db) { if (is_message_unread_count_inited_) { - int32 unread_unmuted_count = unread_message_total_count_ - unread_message_muted_count_; - updates.push_back( - td_api::make_object(unread_message_total_count_, unread_unmuted_count)); + updates.push_back(get_update_unread_message_count_object()); } if (is_dialog_unread_count_inited_) { - int32 unread_unmuted_count = unread_dialog_total_count_ - unread_dialog_muted_count_; - int32 unread_unmuted_marked_count = unread_dialog_marked_count_ - unread_dialog_muted_marked_count_; - updates.push_back(td_api::make_object( - unread_dialog_total_count_, unread_unmuted_count, unread_dialog_marked_count_, - unread_unmuted_marked_count)); + updates.push_back(get_update_unread_chat_count_object()); } } diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h index 9d269d31..089a9833 100644 --- a/td/telegram/MessagesManager.h +++ b/td/telegram/MessagesManager.h @@ -1485,6 +1485,10 @@ class MessagesManager : public Actor { void recalc_unread_count(); + td_api::object_ptr get_update_unread_message_count_object() const; + + td_api::object_ptr get_update_unread_chat_count_object() const; + void set_dialog_last_read_inbox_message_id(Dialog *d, MessageId message_id, int32 server_unread_count, int32 local_unread_count, bool force_update, const char *source);