From ad8d977a0343e6d70b1c9dc1903550907ec4483a Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 7 Aug 2023 23:09:35 +0300 Subject: [PATCH] Reload chat active stories when is_mutual_contact changes. --- td/telegram/ContactsManager.cpp | 7 +++++++ td/telegram/ContactsManager.h | 1 + 2 files changed, 8 insertions(+) diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index f31bc92b1..a1a96e0ff 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -11956,6 +11956,9 @@ void ContactsManager::update_user(User *u, UserId user_id, bool from_binlog, boo td_->messages_manager_->on_dialog_user_is_contact_updated(DialogId(user_id), u->is_contact); send_closure_later(td_->story_manager_actor_, &StoryManager::on_dialog_active_stories_order_updated, DialogId(user_id), "is_contact"); + if (!from_database && u->is_is_mutual_contact_changed) { + send_closure_later(td_->story_manager_actor_, &StoryManager::reload_dialog_expiring_stories, DialogId(user_id)); + } if (is_user_contact(u, user_id, false)) { auto user_full = get_user_full(user_id); if (user_full != nullptr && user_full->need_phone_number_privacy_exception) { @@ -11964,6 +11967,7 @@ void ContactsManager::update_user(User *u, UserId user_id, bool from_binlog, boo } } u->is_is_contact_changed = false; + u->is_is_mutual_contact_changed = false; } if (u->is_is_deleted_changed) { td_->messages_manager_->on_dialog_user_is_deleted_updated(DialogId(user_id), u->is_deleted); @@ -13693,6 +13697,9 @@ void ContactsManager::on_update_user_is_contact(User *u, UserId user_id, bool is << ")"; if (u->is_contact != is_contact) { u->is_is_contact_changed = true; + if (u->is_mutual_contact != is_mutual_contact) { + u->is_is_mutual_contact_changed = true; + } } u->is_contact = is_contact; u->is_mutual_contact = is_mutual_contact; diff --git a/td/telegram/ContactsManager.h b/td/telegram/ContactsManager.h index 07f94e793..cdb4935b2 100644 --- a/td/telegram/ContactsManager.h +++ b/td/telegram/ContactsManager.h @@ -809,6 +809,7 @@ class ContactsManager final : public Actor { bool is_phone_number_changed = true; bool is_emoji_status_changed = true; bool is_is_contact_changed = true; + bool is_is_mutual_contact_changed = true; bool is_is_deleted_changed = true; bool is_is_premium_changed = true; bool is_stories_hidden_changed = true;