diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index d3614bd37..b2b0af710 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -2742,7 +2742,7 @@ tl_object_ptr ContactsManager::convert_stats_absolute_v get_percentage_value(obj->current_ - obj->previous_, obj->previous_)); } -tl_object_ptr ContactsManager::convert_megagroup_stats( +tl_object_ptr ContactsManager::convert_megagroup_stats( tl_object_ptr obj) { CHECK(obj != nullptr); @@ -2785,7 +2785,7 @@ tl_object_ptr ContactsManager::convert_megagroup_stats( std::move(top_inviters)); } -tl_object_ptr ContactsManager::convert_broadcast_stats( +tl_object_ptr ContactsManager::convert_broadcast_stats( tl_object_ptr obj) { CHECK(obj != nullptr); @@ -2874,8 +2874,12 @@ class GetBroadcastStatsQuery : public Td::ResultHandler { return on_error(id, result_ptr.move_as_error()); } - auto result = result_ptr.move_as_ok(); - promise_.set_value(ContactsManager::convert_broadcast_stats(std::move(result))); + auto result = ContactsManager::convert_broadcast_stats(result_ptr.move_as_ok()); + for (auto &info : result->recent_message_interactions_) { + td->messages_manager_->on_update_message_interaction_info({DialogId(channel_id_), MessageId(info->message_id_)}, + info->view_count_, info->forward_count_); + } + promise_.set_value(std::move(result)); } void on_error(uint64 id, Status status) override { diff --git a/td/telegram/ContactsManager.h b/td/telegram/ContactsManager.h index 8850e85eb..3dba1c087 100644 --- a/td/telegram/ContactsManager.h +++ b/td/telegram/ContactsManager.h @@ -564,9 +564,10 @@ class ContactsManager : public Actor { static tl_object_ptr convert_stats_absolute_value( const tl_object_ptr &obj); - tl_object_ptr convert_megagroup_stats(tl_object_ptr obj); + tl_object_ptr convert_megagroup_stats( + tl_object_ptr obj); - static tl_object_ptr convert_broadcast_stats( + static tl_object_ptr convert_broadcast_stats( tl_object_ptr obj); private: