Invalidate cache of users deleted from contacts to repair their online status.
GitOrigin-RevId: b6775e9156385d7ca80fe627b395053eed24b155
This commit is contained in:
parent
fef67252d1
commit
b6ac360875
@ -6642,10 +6642,17 @@ void ContactsManager::on_deleted_contacts(const vector<UserId> &deleted_contact_
|
|||||||
LOG(INFO) << "Contacts deletion has finished for " << deleted_contact_user_ids;
|
LOG(INFO) << "Contacts deletion has finished for " << deleted_contact_user_ids;
|
||||||
|
|
||||||
for (auto user_id : deleted_contact_user_ids) {
|
for (auto user_id : deleted_contact_user_ids) {
|
||||||
LOG(INFO) << "Drop contact with " << user_id;
|
|
||||||
auto u = get_user(user_id);
|
auto u = get_user(user_id);
|
||||||
CHECK(u != nullptr);
|
CHECK(u != nullptr);
|
||||||
|
if (!u->is_contact) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG(INFO) << "Drop contact with " << user_id;
|
||||||
on_update_user_is_contact(u, user_id, false, false);
|
on_update_user_is_contact(u, user_id, false, false);
|
||||||
|
CHECK(u->is_is_contact_changed);
|
||||||
|
u->cache_version = 0;
|
||||||
|
u->is_repaired = false;
|
||||||
update_user(u, user_id);
|
update_user(u, user_id);
|
||||||
CHECK(!u->is_contact);
|
CHECK(!u->is_contact);
|
||||||
CHECK(!contacts_hints_.has_key(user_id.get()));
|
CHECK(!contacts_hints_.has_key(user_id.get()));
|
||||||
@ -6697,6 +6704,9 @@ void ContactsManager::on_get_contacts(tl_object_ptr<telegram_api::contacts_Conta
|
|||||||
<< my_id << " " << user_id << " " << to_string(get_user_object(user_id, u));
|
<< my_id << " " << user_id << " " << to_string(get_user_object(user_id, u));
|
||||||
}
|
}
|
||||||
on_update_user_is_contact(u, user_id, false, false);
|
on_update_user_is_contact(u, user_id, false, false);
|
||||||
|
CHECK(u->is_is_contact_changed);
|
||||||
|
u->cache_version = 0;
|
||||||
|
u->is_repaired = false;
|
||||||
update_user(u, user_id);
|
update_user(u, user_id);
|
||||||
CHECK(!u->is_contact);
|
CHECK(!u->is_contact);
|
||||||
if (user_id != my_id) {
|
if (user_id != my_id) {
|
||||||
@ -9348,7 +9358,9 @@ void ContactsManager::on_update_user_is_contact(User *u, UserId user_id, bool is
|
|||||||
if (u->is_contact != is_contact || u->is_mutual_contact != is_mutual_contact) {
|
if (u->is_contact != is_contact || u->is_mutual_contact != is_mutual_contact) {
|
||||||
LOG(DEBUG) << "Update " << user_id << " is_contact from (" << u->is_contact << ", " << u->is_mutual_contact
|
LOG(DEBUG) << "Update " << user_id << " is_contact from (" << u->is_contact << ", " << u->is_mutual_contact
|
||||||
<< ") to (" << is_contact << ", " << is_mutual_contact << ")";
|
<< ") to (" << is_contact << ", " << is_mutual_contact << ")";
|
||||||
u->is_is_contact_changed |= (u->is_contact != is_contact);
|
if (u->is_contact != is_contact) {
|
||||||
|
u->is_is_contact_changed = true;
|
||||||
|
}
|
||||||
u->is_contact = is_contact;
|
u->is_contact = is_contact;
|
||||||
u->is_mutual_contact = is_mutual_contact;
|
u->is_mutual_contact = is_mutual_contact;
|
||||||
u->is_changed = true;
|
u->is_changed = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user