Add reload_user_full and use it to repair action bar.
GitOrigin-RevId: b7b4bc20b944caca0c086d9ecbf99756e8330c61
This commit is contained in:
parent
9e8512411c
commit
d2047ff6d1
@ -363,6 +363,7 @@ class SetUserIsBlockedQuery : public Td::ResultHandler {
|
|||||||
void on_error(uint64 id, Status status) override {
|
void on_error(uint64 id, Status status) override {
|
||||||
if (!G()->close_flag()) {
|
if (!G()->close_flag()) {
|
||||||
LOG(WARNING) << "Receive error for SetUserIsBlockedQuery: " << status;
|
LOG(WARNING) << "Receive error for SetUserIsBlockedQuery: " << status;
|
||||||
|
td->contacts_manager_->reload_user_full(user_id_);
|
||||||
td->messages_manager_->repair_dialog_action_bar(DialogId(user_id_));
|
td->messages_manager_->repair_dialog_action_bar(DialogId(user_id_));
|
||||||
}
|
}
|
||||||
status.ignore();
|
status.ignore();
|
||||||
@ -9890,8 +9891,8 @@ void ContactsManager::reload_user(UserId user_id, Promise<Unit> &&promise) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ContactsManager::get_user_full(UserId user_id, Promise<Unit> &&promise) {
|
bool ContactsManager::get_user_full(UserId user_id, Promise<Unit> &&promise) {
|
||||||
auto user = get_user(user_id);
|
auto u = get_user(user_id);
|
||||||
if (user == nullptr) {
|
if (u == nullptr) {
|
||||||
promise.set_error(Status::Error(6, "User not found"));
|
promise.set_error(Status::Error(6, "User not found"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -9907,7 +9908,7 @@ bool ContactsManager::get_user_full(UserId user_id, Promise<Unit> &&promise) {
|
|||||||
send_get_user_full_query(user_id, std::move(input_user), std::move(promise), "get_user_full");
|
send_get_user_full_query(user_id, std::move(input_user), std::move(promise), "get_user_full");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (user_full->is_expired() || user_full->is_bot_info_expired(user->bot_info_version)) {
|
if (user_full->is_expired() || user_full->is_bot_info_expired(u->bot_info_version)) {
|
||||||
auto input_user = get_input_user(user_id);
|
auto input_user = get_input_user(user_id);
|
||||||
CHECK(input_user != nullptr);
|
CHECK(input_user != nullptr);
|
||||||
if (td_->auth_manager_->is_bot()) {
|
if (td_->auth_manager_->is_bot()) {
|
||||||
@ -9922,6 +9923,13 @@ bool ContactsManager::get_user_full(UserId user_id, Promise<Unit> &&promise) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ContactsManager::reload_user_full(UserId user_id) {
|
||||||
|
auto input_user = get_input_user(user_id);
|
||||||
|
if (input_user != nullptr) {
|
||||||
|
send_get_user_full_query(user_id, std::move(input_user), Auto(), "reload_user_full");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ContactsManager::send_get_user_full_query(UserId user_id, tl_object_ptr<telegram_api::InputUser> &&input_user,
|
void ContactsManager::send_get_user_full_query(UserId user_id, tl_object_ptr<telegram_api::InputUser> &&input_user,
|
||||||
Promise<Unit> &&promise, const char *source) {
|
Promise<Unit> &&promise, const char *source) {
|
||||||
LOG(INFO) << "Get full " << user_id << " from " << source;
|
LOG(INFO) << "Get full " << user_id << " from " << source;
|
||||||
|
@ -365,6 +365,7 @@ class ContactsManager : public Actor {
|
|||||||
bool get_user(UserId user_id, int left_tries, Promise<Unit> &&promise);
|
bool get_user(UserId user_id, int left_tries, Promise<Unit> &&promise);
|
||||||
void reload_user(UserId user_id, Promise<Unit> &&promise);
|
void reload_user(UserId user_id, Promise<Unit> &&promise);
|
||||||
bool get_user_full(UserId user_id, Promise<Unit> &&promise);
|
bool get_user_full(UserId user_id, Promise<Unit> &&promise);
|
||||||
|
void reload_user_full(UserId user_id);
|
||||||
|
|
||||||
std::pair<int32, vector<const Photo *>> get_user_profile_photos(UserId user_id, int32 offset, int32 limit,
|
std::pair<int32, vector<const Photo *>> get_user_profile_photos(UserId user_id, int32 offset, int32 limit,
|
||||||
Promise<Unit> &&promise);
|
Promise<Unit> &&promise);
|
||||||
|
@ -6442,7 +6442,7 @@ bool MessagesManager::update_dialog_silent_send_message(Dialog *d, bool silent_s
|
|||||||
void MessagesManager::repair_dialog_action_bar(DialogId dialog_id) {
|
void MessagesManager::repair_dialog_action_bar(DialogId dialog_id) {
|
||||||
switch (dialog_id.get_type()) {
|
switch (dialog_id.get_type()) {
|
||||||
case DialogType::User:
|
case DialogType::User:
|
||||||
td_->contacts_manager_->get_user_full(dialog_id.get_user_id(), Auto());
|
td_->contacts_manager_->reload_user_full(dialog_id.get_user_id());
|
||||||
return;
|
return;
|
||||||
case DialogType::Chat:
|
case DialogType::Chat:
|
||||||
case DialogType::Channel:
|
case DialogType::Channel:
|
||||||
@ -14264,8 +14264,8 @@ void MessagesManager::open_dialog(Dialog *d) {
|
|||||||
break;
|
break;
|
||||||
case DialogType::SecretChat:
|
case DialogType::SecretChat:
|
||||||
// to repair dialog action bar
|
// to repair dialog action bar
|
||||||
td_->contacts_manager_->get_user_full(
|
td_->contacts_manager_->reload_user_full(
|
||||||
td_->contacts_manager_->get_secret_chat_user_id(dialog_id.get_secret_chat_id()), Auto());
|
td_->contacts_manager_->get_secret_chat_user_id(dialog_id.get_secret_chat_id()));
|
||||||
break;
|
break;
|
||||||
case DialogType::None:
|
case DialogType::None:
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user