Add drop_user_photos method.
GitOrigin-RevId: 57ff5576d56f1e190e62a3debe8b10b2de987338
This commit is contained in:
parent
cf73995c4b
commit
4e436cdf17
@ -7481,16 +7481,7 @@ void ContactsManager::update_user(User *u, UserId user_id, bool from_binlog, boo
|
|||||||
|
|
||||||
add_user_photo_id(u, user_id, u->photo.id, dialog_photo_get_file_ids(u->photo));
|
add_user_photo_id(u, user_id, u->photo.id, dialog_photo_get_file_ids(u->photo));
|
||||||
|
|
||||||
UserFull *user_full = get_user_full(user_id);
|
drop_user_photos(user_id, u->photo.id <= 0);
|
||||||
if (user_full != nullptr) {
|
|
||||||
user_full->photos.clear();
|
|
||||||
if (u->photo.id == 0) {
|
|
||||||
user_full->photo_count = 0;
|
|
||||||
} else {
|
|
||||||
user_full->photo_count = -1;
|
|
||||||
}
|
|
||||||
user_full->photos_offset = user_full->photo_count;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (u->is_status_changed && user_id != get_my_id()) {
|
if (u->is_status_changed && user_id != get_my_id()) {
|
||||||
auto left_time = get_user_was_online(u, user_id) - G()->server_time_cached();
|
auto left_time = get_user_was_online(u, user_id) - G()->server_time_cached();
|
||||||
@ -7893,9 +7884,7 @@ void ContactsManager::on_get_user_full(tl_object_ptr<telegram_api::userFull> &&u
|
|||||||
|
|
||||||
Photo photo = get_photo(td_->file_manager_.get(), std::move(user_full->profile_photo_), DialogId());
|
Photo photo = get_photo(td_->file_manager_.get(), std::move(user_full->profile_photo_), DialogId());
|
||||||
if (photo.id == -2) {
|
if (photo.id == -2) {
|
||||||
user->photo_count = 0;
|
drop_user_photos(user_id, true);
|
||||||
user->photos_offset = 0;
|
|
||||||
user->photos.clear();
|
|
||||||
}
|
}
|
||||||
if ((user_full->flags_ & USER_FULL_FLAG_HAS_BOT_INFO) != 0 && !u->is_deleted) {
|
if ((user_full->flags_ & USER_FULL_FLAG_HAS_BOT_INFO) != 0 && !u->is_deleted) {
|
||||||
on_update_user_full_bot_info(user, user_id, u->bot_info_version, std::move(user_full->bot_info_));
|
on_update_user_full_bot_info(user, user_id, u->bot_info_version, std::move(user_full->bot_info_));
|
||||||
@ -8340,16 +8329,7 @@ void ContactsManager::on_update_user_photo(User *u, UserId user_id,
|
|||||||
bool is_empty = photo == nullptr || photo->get_id() == telegram_api::userProfilePhotoEmpty::ID;
|
bool is_empty = photo == nullptr || photo->get_id() == telegram_api::userProfilePhotoEmpty::ID;
|
||||||
pending_user_photos_[user_id] = std::move(photo);
|
pending_user_photos_[user_id] = std::move(photo);
|
||||||
|
|
||||||
UserFull *user_full = get_user_full(user_id);
|
drop_user_photos(user_id, is_empty);
|
||||||
if (user_full != nullptr) {
|
|
||||||
user_full->photos.clear();
|
|
||||||
if (is_empty) {
|
|
||||||
user_full->photo_count = 0;
|
|
||||||
} else {
|
|
||||||
user_full->photo_count = -1;
|
|
||||||
}
|
|
||||||
user_full->photos_offset = user_full->photo_count;
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8618,13 +8598,7 @@ void ContactsManager::on_update_user_full_need_phone_number_privacy_exception(
|
|||||||
void ContactsManager::on_delete_profile_photo(int64 profile_photo_id, Promise<Unit> promise) {
|
void ContactsManager::on_delete_profile_photo(int64 profile_photo_id, Promise<Unit> promise) {
|
||||||
UserId my_id = get_my_id();
|
UserId my_id = get_my_id();
|
||||||
|
|
||||||
UserFull *user_full = get_user_full(my_id);
|
drop_user_photos(my_id, false);
|
||||||
if (user_full != nullptr) {
|
|
||||||
// drop photo cache
|
|
||||||
user_full->photos.clear();
|
|
||||||
user_full->photo_count = -1;
|
|
||||||
user_full->photos_offset = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (G()->close_flag()) {
|
if (G()->close_flag()) {
|
||||||
return promise.set_value(Unit());
|
return promise.set_value(Unit());
|
||||||
@ -8633,6 +8607,19 @@ void ContactsManager::on_delete_profile_photo(int64 profile_photo_id, Promise<Un
|
|||||||
reload_user(my_id, std::move(promise));
|
reload_user(my_id, std::move(promise));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ContactsManager::drop_user_photos(UserId user_id, bool is_empty) {
|
||||||
|
UserFull *user_full = get_user_full(user_id);
|
||||||
|
if (user_full != nullptr) {
|
||||||
|
user_full->photos.clear();
|
||||||
|
if (is_empty) {
|
||||||
|
user_full->photo_count = 0;
|
||||||
|
} else {
|
||||||
|
user_full->photo_count = -1;
|
||||||
|
}
|
||||||
|
user_full->photos_offset = user_full->photo_count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ContactsManager::drop_user_full(UserId user_id) {
|
void ContactsManager::drop_user_full(UserId user_id) {
|
||||||
auto user_full = get_user_full_force(user_id);
|
auto user_full = get_user_full_force(user_id);
|
||||||
if (user_full == nullptr) {
|
if (user_full == nullptr) {
|
||||||
@ -8641,9 +8628,7 @@ void ContactsManager::drop_user_full(UserId user_id) {
|
|||||||
|
|
||||||
user_full->expires_at = 0.0;
|
user_full->expires_at = 0.0;
|
||||||
|
|
||||||
user_full->photos.clear();
|
drop_user_photos(user_id, false);
|
||||||
user_full->photo_count = -1;
|
|
||||||
user_full->photos_offset = -1;
|
|
||||||
user_full->is_inited = true;
|
user_full->is_inited = true;
|
||||||
user_full->is_blocked = false;
|
user_full->is_blocked = false;
|
||||||
user_full->can_be_called = false;
|
user_full->can_be_called = false;
|
||||||
|
@ -1013,6 +1013,7 @@ class ContactsManager : public Actor {
|
|||||||
bool need_phone_number_privacy_exception);
|
bool need_phone_number_privacy_exception);
|
||||||
bool on_update_user_full_bot_info(UserFull *user_full, UserId user_id, int32 bot_info_version,
|
bool on_update_user_full_bot_info(UserFull *user_full, UserId user_id, int32 bot_info_version,
|
||||||
tl_object_ptr<telegram_api::botInfo> &&bot_info);
|
tl_object_ptr<telegram_api::botInfo> &&bot_info);
|
||||||
|
void drop_user_photos(UserId user_id, bool is_empty);
|
||||||
void drop_user_full(UserId user_id);
|
void drop_user_full(UserId user_id);
|
||||||
|
|
||||||
void on_set_user_is_blocked_failed(UserId user_id, bool is_blocked, Status error);
|
void on_set_user_is_blocked_failed(UserId user_id, bool is_blocked, Status error);
|
||||||
|
Loading…
Reference in New Issue
Block a user