Send updateChatIsTranslatable when premium is switched on or off.
This commit is contained in:
parent
337aef5c02
commit
8137572794
|
@ -11316,6 +11316,7 @@ void ContactsManager::update_user(User *u, UserId user_id, bool from_binlog, boo
|
||||||
td_->option_manager_->set_option_boolean("is_premium", u->is_premium);
|
td_->option_manager_->set_option_boolean("is_premium", u->is_premium);
|
||||||
send_closure(td_->config_manager_, &ConfigManager::request_config, true);
|
send_closure(td_->config_manager_, &ConfigManager::request_config, true);
|
||||||
td_->stickers_manager_->reload_top_reactions();
|
td_->stickers_manager_->reload_top_reactions();
|
||||||
|
td_->messages_manager_->update_is_translatable(u->is_premium);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (u->is_name_changed || u->is_username_changed || u->is_is_contact_changed) {
|
if (u->is_name_changed || u->is_username_changed || u->is_is_contact_changed) {
|
||||||
|
|
|
@ -20952,7 +20952,7 @@ Status MessagesManager::toggle_dialog_is_translatable(DialogId dialog_id, bool i
|
||||||
return Status::Error(400, "Can't access the chat");
|
return Status::Error(400, "Can't access the chat");
|
||||||
}
|
}
|
||||||
if (!td_->option_manager_->get_option_boolean("is_premium")) {
|
if (!td_->option_manager_->get_option_boolean("is_premium")) {
|
||||||
return Status::Error(400, "The method is available for Telegram Premium users only");
|
return Status::Error(400, "The method is available to Telegram Premium users only");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_translatable == d->is_translatable) {
|
if (is_translatable == d->is_translatable) {
|
||||||
|
@ -32989,6 +32989,19 @@ void MessagesManager::on_update_dialog_is_translatable(DialogId dialog_id, bool
|
||||||
set_dialog_is_translatable(d, is_translatable);
|
set_dialog_is_translatable(d, is_translatable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MessagesManager::update_is_translatable(bool new_is_premium) {
|
||||||
|
if (td_->auth_manager_->is_bot()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dialogs_.foreach([&](const DialogId &dialog_id, const unique_ptr<Dialog> &dialog) {
|
||||||
|
if (dialog->is_translatable) {
|
||||||
|
send_closure(G()->td(), &Td::send_update,
|
||||||
|
make_tl_object<td_api::updateChatIsTranslatable>(dialog_id.get(), new_is_premium));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void MessagesManager::set_dialog_is_translatable(Dialog *d, bool is_translatable) {
|
void MessagesManager::set_dialog_is_translatable(Dialog *d, bool is_translatable) {
|
||||||
if (td_->auth_manager_->is_bot()) {
|
if (td_->auth_manager_->is_bot()) {
|
||||||
// just in case
|
// just in case
|
||||||
|
|
|
@ -289,6 +289,8 @@ class MessagesManager final : public Actor {
|
||||||
|
|
||||||
void on_update_dialog_is_translatable(DialogId dialog_id, bool is_translatable);
|
void on_update_dialog_is_translatable(DialogId dialog_id, bool is_translatable);
|
||||||
|
|
||||||
|
void update_is_translatable(bool new_is_premium);
|
||||||
|
|
||||||
void on_update_dialog_is_blocked(DialogId dialog_id, bool is_blocked);
|
void on_update_dialog_is_blocked(DialogId dialog_id, bool is_blocked);
|
||||||
|
|
||||||
void on_update_dialog_last_pinned_message_id(DialogId dialog_id, MessageId last_pinned_message_id);
|
void on_update_dialog_last_pinned_message_id(DialogId dialog_id, MessageId last_pinned_message_id);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user