Unify *Full.is_changed usage.
GitOrigin-RevId: 222ac98bc06fa5652add8e5d43c7861906209136
This commit is contained in:
parent
bc8f0dcb87
commit
de0e0d8173
@ -7841,23 +7841,31 @@ void ContactsManager::update_user_full(UserFull *user_full, UserId user_id, bool
|
|||||||
user_full->is_is_blocked_changed = false;
|
user_full->is_is_blocked_changed = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (user_full->is_changed || user_full->need_send_update) {
|
user_full->need_send_update |= user_full->is_changed;
|
||||||
|
user_full->need_save_to_database |= user_full->is_changed;
|
||||||
|
user_full->is_changed = false;
|
||||||
|
if (user_full->need_send_update) {
|
||||||
send_closure(G()->td(), &Td::send_update,
|
send_closure(G()->td(), &Td::send_update,
|
||||||
make_tl_object<td_api::updateUserFullInfo>(get_user_id_object(user_id, "updateUserFullInfo"),
|
make_tl_object<td_api::updateUserFullInfo>(get_user_id_object(user_id, "updateUserFullInfo"),
|
||||||
get_user_full_info_object(user_id, user_full)));
|
get_user_full_info_object(user_id, user_full)));
|
||||||
|
|
||||||
if (!from_database && user_full->is_changed) {
|
|
||||||
save_user_full(user_full, user_id);
|
|
||||||
}
|
|
||||||
user_full->is_changed = false;
|
|
||||||
user_full->need_send_update = false;
|
user_full->need_send_update = false;
|
||||||
}
|
}
|
||||||
|
if (!from_database && user_full->need_save_to_database) {
|
||||||
|
send_closure(G()->td(), &Td::send_update,
|
||||||
|
make_tl_object<td_api::updateUserFullInfo>(get_user_id_object(user_id, "updateUserFullInfo"),
|
||||||
|
get_user_full_info_object(user_id, user_full)));
|
||||||
|
user_full->need_save_to_database = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContactsManager::update_chat_full(ChatFull *chat_full, ChatId chat_id, bool from_database) {
|
void ContactsManager::update_chat_full(ChatFull *chat_full, ChatId chat_id, bool from_database) {
|
||||||
CHECK(chat_full != nullptr);
|
CHECK(chat_full != nullptr);
|
||||||
unavailable_chat_fulls_.erase(chat_id); // don't needed anymore
|
unavailable_chat_fulls_.erase(chat_id); // don't needed anymore
|
||||||
if (chat_full->is_changed || chat_full->need_send_update) {
|
|
||||||
|
chat_full->need_send_update |= chat_full->is_changed;
|
||||||
|
chat_full->need_save_to_database |= chat_full->is_changed;
|
||||||
|
chat_full->is_changed = false;
|
||||||
|
if (chat_full->need_send_update) {
|
||||||
vector<UserId> administrator_user_ids;
|
vector<UserId> administrator_user_ids;
|
||||||
vector<UserId> bot_user_ids;
|
vector<UserId> bot_user_ids;
|
||||||
for (const auto &participant : chat_full->participants) {
|
for (const auto &participant : chat_full->participants) {
|
||||||
@ -7876,32 +7884,35 @@ void ContactsManager::update_chat_full(ChatFull *chat_full, ChatId chat_id, bool
|
|||||||
G()->td(), &Td::send_update,
|
G()->td(), &Td::send_update,
|
||||||
make_tl_object<td_api::updateBasicGroupFullInfo>(get_basic_group_id_object(chat_id, "update_chat_full"),
|
make_tl_object<td_api::updateBasicGroupFullInfo>(get_basic_group_id_object(chat_id, "update_chat_full"),
|
||||||
get_basic_group_full_info_object(chat_full)));
|
get_basic_group_full_info_object(chat_full)));
|
||||||
|
|
||||||
if (!from_database && chat_full->is_changed) {
|
|
||||||
save_chat_full(chat_full, chat_id);
|
|
||||||
}
|
|
||||||
chat_full->is_changed = false;
|
|
||||||
chat_full->need_send_update = false;
|
chat_full->need_send_update = false;
|
||||||
}
|
}
|
||||||
|
if (!from_database && chat_full->need_save_to_database) {
|
||||||
|
save_chat_full(chat_full, chat_id);
|
||||||
|
chat_full->need_save_to_database = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContactsManager::update_channel_full(ChannelFull *channel_full, ChannelId channel_id, bool from_database) {
|
void ContactsManager::update_channel_full(ChannelFull *channel_full, ChannelId channel_id, bool from_database) {
|
||||||
CHECK(channel_full != nullptr);
|
CHECK(channel_full != nullptr);
|
||||||
unavailable_channel_fulls_.erase(channel_id); // don't needed anymore
|
unavailable_channel_fulls_.erase(channel_id); // don't needed anymore
|
||||||
|
|
||||||
channel_full->need_save_to_database |= channel_full->is_changed;
|
|
||||||
if (channel_full->is_changed) {
|
|
||||||
if (channel_full->linked_channel_id.is_valid()) {
|
|
||||||
td_->messages_manager_->force_create_dialog(DialogId(channel_full->linked_channel_id), "update_channel_full");
|
|
||||||
}
|
|
||||||
if (channel_full->participant_count < channel_full->administrator_count) {
|
if (channel_full->participant_count < channel_full->administrator_count) {
|
||||||
channel_full->administrator_count = channel_full->participant_count;
|
channel_full->administrator_count = channel_full->participant_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
channel_full->need_send_update |= channel_full->is_changed;
|
||||||
|
channel_full->need_save_to_database |= channel_full->is_changed;
|
||||||
channel_full->is_changed = false;
|
channel_full->is_changed = false;
|
||||||
|
if (channel_full->need_send_update) {
|
||||||
|
if (channel_full->linked_channel_id.is_valid()) {
|
||||||
|
td_->messages_manager_->force_create_dialog(DialogId(channel_full->linked_channel_id), "update_channel_full");
|
||||||
|
}
|
||||||
|
|
||||||
send_closure(
|
send_closure(
|
||||||
G()->td(), &Td::send_update,
|
G()->td(), &Td::send_update,
|
||||||
make_tl_object<td_api::updateSupergroupFullInfo>(get_supergroup_id_object(channel_id, "update_channel_full"),
|
make_tl_object<td_api::updateSupergroupFullInfo>(get_supergroup_id_object(channel_id, "update_channel_full"),
|
||||||
get_supergroup_full_info_object(channel_full)));
|
get_supergroup_full_info_object(channel_full)));
|
||||||
|
channel_full->need_send_update = false;
|
||||||
}
|
}
|
||||||
if (!from_database && channel_full->need_save_to_database) {
|
if (!from_database && channel_full->need_save_to_database) {
|
||||||
channel_full->need_save_to_database = false;
|
channel_full->need_save_to_database = false;
|
||||||
|
@ -600,8 +600,9 @@ class ContactsManager : public Actor {
|
|||||||
|
|
||||||
bool is_is_blocked_changed = true;
|
bool is_is_blocked_changed = true;
|
||||||
bool is_common_chat_count_changed = true;
|
bool is_common_chat_count_changed = true;
|
||||||
bool is_changed = true; // have new changes that needs to be sent to the client and database
|
bool is_changed = true; // have new changes that need to be sent to the client and database
|
||||||
bool need_send_update = true; // have new changes that needs to be sent only to the client
|
bool need_send_update = true; // have new changes that need only to be sent to the client
|
||||||
|
bool need_save_to_database = true; // have new changes that need onto be saved to the database
|
||||||
|
|
||||||
double expires_at = 0.0;
|
double expires_at = 0.0;
|
||||||
|
|
||||||
@ -664,8 +665,9 @@ class ContactsManager : public Actor {
|
|||||||
|
|
||||||
bool can_set_username = false;
|
bool can_set_username = false;
|
||||||
|
|
||||||
bool is_changed = true; // have new changes that needs to be sent to the client and database
|
bool is_changed = true; // have new changes that need to be sent to the client and database
|
||||||
bool need_send_update = true; // have new changes that needs to be sent only to the client
|
bool need_send_update = true; // have new changes that need only to be sent to the client
|
||||||
|
bool need_save_to_database = true; // have new changes that need onto be saved to the database
|
||||||
|
|
||||||
template <class StorerT>
|
template <class StorerT>
|
||||||
void store(StorerT &storer) const;
|
void store(StorerT &storer) const;
|
||||||
@ -746,8 +748,9 @@ class ContactsManager : public Actor {
|
|||||||
bool can_view_statistics = false;
|
bool can_view_statistics = false;
|
||||||
bool is_all_history_available = true;
|
bool is_all_history_available = true;
|
||||||
|
|
||||||
bool is_changed = true; // have new changes that needs to be sent to the client and database
|
bool is_changed = true; // have new changes that need to be sent to the client and database
|
||||||
bool need_save_to_database = true; // have new changes that needs only to be saved to database
|
bool need_send_update = true; // have new changes that need only to be sent to the client
|
||||||
|
bool need_save_to_database = true; // have new changes that need onto be saved to the database
|
||||||
|
|
||||||
double expires_at = 0.0;
|
double expires_at = 0.0;
|
||||||
bool is_expired() const;
|
bool is_expired() const;
|
||||||
|
Loading…
Reference in New Issue
Block a user