Count yet unsent stories in updateStoryListChatCount.
This commit is contained in:
parent
5c63b80cce
commit
9c42aeb575
@ -1863,8 +1863,15 @@ void StoryManager::update_story_list_sent_total_count(StoryListId story_list_id,
|
|||||||
}
|
}
|
||||||
LOG(INFO) << "Update story list sent total chat count in " << story_list_id;
|
LOG(INFO) << "Update story list sent total chat count in " << story_list_id;
|
||||||
auto new_total_count = static_cast<int32>(story_list.ordered_stories_.size());
|
auto new_total_count = static_cast<int32>(story_list.ordered_stories_.size());
|
||||||
|
auto yet_unsent_total_count = 0;
|
||||||
|
for (const auto &it : yet_unsent_story_ids_) {
|
||||||
|
if (active_stories_.count(it.first) == 0) {
|
||||||
|
yet_unsent_total_count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
new_total_count += yet_unsent_total_count;
|
||||||
if (story_list.list_last_story_date_ != MAX_DIALOG_DATE) {
|
if (story_list.list_last_story_date_ != MAX_DIALOG_DATE) {
|
||||||
new_total_count = max(new_total_count, story_list.server_total_count_);
|
new_total_count = max(new_total_count, story_list.server_total_count_ + yet_unsent_total_count);
|
||||||
} else if (story_list.server_total_count_ != new_total_count) {
|
} else if (story_list.server_total_count_ != new_total_count) {
|
||||||
story_list.server_total_count_ = new_total_count;
|
story_list.server_total_count_ = new_total_count;
|
||||||
save_story_list(story_list_id, story_list.state_, story_list.server_total_count_, story_list.server_has_more_);
|
save_story_list(story_list_id, story_list.state_, story_list.server_total_count_, story_list.server_has_more_);
|
||||||
@ -4024,6 +4031,7 @@ void StoryManager::do_send_story(unique_ptr<PendingStory> &&pending_story, vecto
|
|||||||
|
|
||||||
updated_active_stories_.insert(pending_story->dialog_id_);
|
updated_active_stories_.insert(pending_story->dialog_id_);
|
||||||
send_update_chat_active_stories(pending_story->dialog_id_, active_stories);
|
send_update_chat_active_stories(pending_story->dialog_id_, active_stories);
|
||||||
|
update_story_list_sent_total_count(StoryListId::main());
|
||||||
} else {
|
} else {
|
||||||
pending_story->story_->content_ = dup_story_content(td_, pending_story->story_->content_.get());
|
pending_story->story_->content_ = dup_story_content(td_, pending_story->story_->content_.get());
|
||||||
}
|
}
|
||||||
@ -4413,6 +4421,7 @@ void StoryManager::delete_pending_story(FileId file_id, unique_ptr<PendingStory>
|
|||||||
if (it->second.empty()) {
|
if (it->second.empty()) {
|
||||||
yet_unsent_stories_.erase(it);
|
yet_unsent_stories_.erase(it);
|
||||||
yet_unsent_story_ids_.erase(pending_story->dialog_id_);
|
yet_unsent_story_ids_.erase(pending_story->dialog_id_);
|
||||||
|
update_story_list_sent_total_count(StoryListId::main());
|
||||||
} else {
|
} else {
|
||||||
auto story_id_it = yet_unsent_story_ids_.find(pending_story->dialog_id_);
|
auto story_id_it = yet_unsent_story_ids_.find(pending_story->dialog_id_);
|
||||||
CHECK(story_id_it != yet_unsent_story_ids_.end());
|
CHECK(story_id_it != yet_unsent_story_ids_.end());
|
||||||
|
Loading…
Reference in New Issue
Block a user